Ciência de Dados

Tutorial Python NumPy

Tutorial Python NumPy
Nesta lição sobre a biblioteca Python NumPy, veremos como essa biblioteca nos permite gerenciar poderosos objetos de matriz N-dimensional com funções sofisticadas presentes para manipular e operar sobre essas matrizes. Para completar esta lição, cobriremos as seguintes seções:

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 numpy
fonte 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 numpy

Vemos 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 np
a = 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:

Deixe-nos provar que matrizes NumPy ocupam menos memória. Isso pode ser feito escrevendo um programa Python muito simples:

importar numpy como np
tempo 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:

14000
4000

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 np
numpy_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á:

int64

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:

5
1
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 peso
altura = [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 bmi
bmi = 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.

Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...