Utilizando a biblioteca Numpy

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

[ Hits: 10.496 ]

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

Leitura de todos os valores de qualquer xml

Jogo da forca criado em Python

Meu programa de Matematica

Calculando IMC Python

Inverte String


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts