- O que é o pacote Python NumPy?
- Matrizes NumPy
- Diferentes operações que podem ser feitas em matrizes NumPy
- Mais algumas funções especiais
O que é o pacote Python NumPy?
Simplificando, NumPy significa 'Numerical Python' e é o que pretende cumprir, para permitir operações numéricas complexas realizadas em objetos de matriz N-dimensional de forma muito fácil e intuitiva. É a biblioteca central usada em computação científica, com funções presentes para realizar operações algébricas lineares e operações estatísticas.
Um dos conceitos mais fundamentais (e atraentes) para NumPy é o uso de objetos de matriz N-dimensional. Podemos considerar este array apenas como um coleção de linhas e colunas, como um arquivo MS-Excel. É possível converter uma lista Python em uma matriz NumPy e operar funções sobre ela.
Representação NumPy Array
Apenas uma nota antes de começar, usamos um ambiente virtual para esta lição que fizemos com o seguinte comando:
python -m virtualenv numpyfonte numpy / bin / activate
Assim que o ambiente virtual estiver ativo, podemos instalar a biblioteca numpy dentro do ambiente virtual para que os exemplos que criaremos a seguir possam ser executados:
pip install numpyVemos algo assim quando executamos o comando acima:
Vamos testar rapidamente se o pacote NumPy foi instalado corretamente com o seguinte trecho de código curto:
importar numpy como npa = np.matriz ([1,2,3])
imprimir (a)
Depois de executar o programa acima, você verá a seguinte saída:
Também podemos ter matrizes multidimensionais com NumPy:
multi_dimension = np.matriz ([(1, 2, 3), (4, 5, 6)])imprimir (multi_dimension)
Isso produzirá uma saída como:
[[1 2 3][4 5 6]]
Você pode usar o Anaconda também para executar esses exemplos, o que é mais fácil e é isso que usamos acima. Se você deseja instalá-lo em sua máquina, veja a lição que descreve “Como instalar o Anaconda Python no Ubuntu 18.04 LTS ”e compartilhe seu feedback. Agora, vamos avançar para vários tipos de operações que podem ser realizadas com matrizes Python NumPy.
Usando matrizes NumPy em listas Python
É importante perguntar se o Python já tem uma estrutura de dados sofisticada para armazenar vários itens, então por que precisamos de matrizes NumPy? As matrizes NumPy são preferido em vez de listas Python pelos seguintes motivos:
- Conveniente de usar para operações matemáticas e de computação intensiva devido à presença de funções NumPy compatíveis
- Eles são muito mais rápidos devido à maneira como armazenam dados internamente
- Menos memória
Deixe-nos provar que matrizes NumPy ocupam menos memória. Isso pode ser feito escrevendo um programa Python muito simples:
importar numpy como nptempo de importação
import sys
lista_python = intervalo (500)
imprimir (sys.getizeof (1) * len (python_list))
numpy_arr = np.arange (500)
imprimir (numpy_arr.size * numpy_arr.tamanho do item)
Quando executarmos o programa acima, obteremos a seguinte saída:
140004000
Isso mostra que a lista do mesmo tamanho é mais de 3 vezes em tamanho quando comparado com a matriz NumPy de mesmo tamanho.
Executando operações NumPy
Nesta seção, vamos dar uma olhada rápida nas operações que podem ser realizadas em matrizes NumPy.
Encontrando dimensões na matriz
Como a matriz NumPy pode ser usada em qualquer espaço dimensional para armazenar dados, podemos encontrar a dimensão de uma matriz com o seguinte trecho de código:
importar numpy como npnumpy_arr = np.matriz ([(1,2,3), (4,5,6)])
imprimir (numpy_arr.ndim)
Veremos a saída como "2", pois esta é uma matriz bidimensional.
Encontrar o tipo de dados de itens na matriz
Podemos usar a matriz NumPy para armazenar qualquer tipo de dados. Vamos agora descobrir o tipo de dados que um array contém:
other_arr = np.array ([('temor', 'b', 'gato')])imprimir (other_arr.dtype)
numpy_arr = np.matriz ([(1,2,3), (4,5,6)])
imprimir (numpy_arr.dtype)
Usamos diferentes tipos de elementos no snippet de código acima. Aqui está a saída que este script mostrará:
Isso acontece quando os caracteres são interpretados como caracteres Unicode e o segundo é óbvio.
Remodele os itens de uma matriz
Se uma matriz NumPy consiste em 2 linhas e 4 colunas, ela pode ser remodelada para conter 4 linhas e 2 colunas. Vamos escrever um snippet de código simples para o mesmo:
original = np.array ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])imprimir (original)
remodelado = original.remodelar (4, 2)
imprimir (remodelado)
Depois de executar o trecho de código acima, obteremos a seguinte saída com os dois arrays impressos na tela:
[['1' 'b' 'c' '4']['5' 'f' 'g' '8']]
[['1' 'b']
['c' '4']
['5' 'f']
['g' '8']]
Observe como o NumPy cuidou de mudar e associar os elementos a novas linhas.
Operações matemáticas em itens de uma matriz
Realizar operações matemáticas em itens de uma matriz é muito simples. Começaremos escrevendo um trecho de código simples para descobrir o máximo, o mínimo e a adição de todos os itens da matriz. Aqui está o snippet de código:
numpy_arr = np.matriz ([(1, 2, 3, 4, 5)])imprimir (numpy_arr.max ())
imprimir (numpy_arr.min ())
imprimir (numpy_arr.soma())
imprimir (numpy_arr.mau())
imprimir (np.sqrt (numpy_arr))
imprimir (np.std (numpy_arr))
Nas últimas 2 operações acima, também calculamos a raiz quadrada e o desvio padrão de cada item da matriz. O snippet acima fornecerá a seguinte saída:
51
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]
1.4142135623730951
Convertendo listas Python em matrizes NumPy
Mesmo se você estiver usando listas Python em seus programas existentes e não quiser alterar todo esse código, mas ainda quiser fazer uso de matrizes NumPy em seu novo código, é bom saber que podemos facilmente converter um Python lista para uma matriz NumPy. Aqui está um exemplo:
# Crie 2 novas listas de altura e pesoaltura = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
peso = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Crie 2 matrizes numpy de altura e peso
np_height = np.matriz (altura)
np_weight = np.matriz (peso)
Só para verificar, agora podemos imprimir o tipo de uma das variáveis:
imprimir (tipo (np_height))E isso vai mostrar:
Agora podemos realizar operações matemáticas sobre todos os itens de uma vez. Vamos ver como podemos calcular o IMC das pessoas:
# Calculate bmibmi = np_weight / np_height ** 2
# Imprima o resultado
imprimir (bmi)
Isso mostrará o IMC de todas as pessoas calculadas em termos de elementos:
[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]Isso não é fácil e prático? Podemos até filtrar dados facilmente com uma condição no lugar de um índice entre colchetes:
bmi [bmi> 25]Isso dará:
array ([29.54033934, 39.02460418, 29.8200692])Crie sequências e repetições aleatórias com NumPy
Com muitos recursos presentes no NumPy para criar dados aleatórios e organizá-los de uma forma necessária, os arrays NumPy são muitas vezes usados na geração de conjuntos de dados de teste em muitos lugares, incluindo depuração e propósitos de teste. Por exemplo, se você deseja criar uma matriz de 0 a n, podemos usar a matriz (observe o único 'r') como o snippet fornecido:
imprimir (np.arange (5))Isso retornará a saída como:
[0 1 2 3 4]A mesma função pode ser usada para fornecer um valor inferior para que a matriz comece com outros números diferentes de 0:
imprimir (np.arange (4, 12))Isso retornará a saída como:
[4 5 6 7 8 9 10 11]Os números não precisam ser contínuos, eles podem pular uma etapa de correção como:
imprimir (np.arange (4, 14, 2))Isso retornará a saída como:
[4 6 8 10 12]Também podemos obter os números em ordem decrescente com um valor de salto negativo:
imprimir (np.arange (14, 4, -1))Isso retornará a saída como:
[14 13 12 11 10 9 8 7 6 5]É possível fundar n números entre xey com espaço igual com o método linspace, aqui está o trecho de código para o mesmo:
np.linspace (start = 10, stop = 70, num = 10, dtype = int)Isso retornará a saída como:
matriz ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])Observe que os itens de saída não são igualmente espaçados. NumPy faz o seu melhor para fazer isso, mas você não precisa confiar nele, pois faz o arredondamento.
Finalmente, vamos ver como podemos gerar um conjunto de sequência aleatória com NumPy, que é uma das funções mais usadas para fins de teste. Vamos passar um intervalo de números para NumPy que será usado como um ponto inicial e final para os números aleatórios:
imprimir (np.aleatória.randint (0, 10, tamanho = [2,2]))O snippet acima cria uma matriz NumPy de 2 por 2 dimensões que conterá números aleatórios entre 0 e 10. Aqui está o exemplo de saída:
[[0 4][8 3]]
Observe que, como os números são aleatórios, a saída pode diferir mesmo entre as 2 execuções na mesma máquina.
Conclusão
Nesta lição, vimos vários aspectos desta biblioteca de computação que podemos usar com Python para calcular problemas matemáticos simples e complexos que podem surgir em vários casos de uso. O NumPy é uma das bibliotecas de computação mais importantes quando se trata de engenharia de dados e cálculo de dados numéricos, definitivamente uma habilidade que precisamos ter em nosso currículo.
Compartilhe seus comentários sobre a lição no Twitter com @sbmaggarwal e @LinuxHint.