Utilizando a biblioteca Numpy

Publicado por João Carlos abreu Junior (última atualização em 14/09/2009)

[ Hits: 9.436 ]

Download alocacao_numpy.py




Esse script demonstra como utilizar a biblioteca Numpy de forma eficiente para se trabalhar com vetores e matrizes numéricas.

  



Esconder código-fonte

# -*- coding: utf-8 -*-
from random import random
import numpy

def ordenacao(dados):
   valor1 = dados[:,:,2]#Valor1 recebe todos os valores de dados[y,x,2]
   valor1 = valor1.reshape(6000*6000)#Transformando valor1 em um vetor de tamanho 6000*6000
   valor2 = dados[:,:,3]#Valor2 recebe todos os valores de dados[y,x,3]
   valor2 = valor2.reshape(6000*6000)#Transformando valor2 em um vetor de tamanho 6000*6000
   indice = numpy.lexsort((valor2,valor1)) # Ordenando de acordo com valor1 e valor2
   return indice

dados = numpy.arange(6000 * 6000 * 4)#Alocação da Memória
dados = dados.reshape((6000,6000,4))# Transforma a memória alocada em uma Matriz 6000X6000, 
#onde cada posição guarda 4 números
#preencimento da memória
for y in xrange(0,6000):
   for x in xrange(0,6000):
      dados[y,x,0] = y
      dados[y,x,1] = x
      dados[y,x,2] = -int(random()*100)#gerando números inteiros negativos. Coloquei o número negativo
      #pois ordenar números inteiros na forma decrescente é o mesmo que ordenar esses mesmo números
      # com sinal trocado na forma crescente
      dados[y,x,3] = int(random()*100)#gerando números inteiros.

print dados      
indice = ordenacao(dados)
dados = dados.reshape((6000 * 6000,4))#Transformando dados em um vetor de tamanho 6000*6000
#impressão ordenada
for linha in xrange(0,6000*6000):
   print dados[indice[linha],0],dados[indice[linha],1],dados[indice[linha],2],dados[indice[linha],3]

Scripts recomendados

O maior quebra cabeças de sempre

Farmux beta 5

Problema das Oito Rainhas (Random)

Script para obter um wallpaper de como está o globo em tempo real

Servidor REST com Flask


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário