Python Tutorial NumPy para iniciantes: aprenda com exemplos
O que é NumPy em Python?
NumPy é uma biblioteca de código aberto disponível em Python, que auxilia na programação matemática, científica, de engenharia e de ciência de dados. É uma biblioteca muito útil para realizar operações matemáticas e estatísticas em Python. Funciona perfeitamente para matrizes multidimensionais e multiplicação de matrizes. É fácil de integrar com C/C++ e Fortran.
Para qualquer projeto científico, NumPy é a ferramenta a ser conhecida. Ele foi construído para funcionar com array N-dimensional, álgebra linear, números aleatórios, transformada de Fourier, etc.
NumPy é uma linguagem de programação que lida com matrizes e arrays multidimensionais. Além de arrays e matrizes, NumPy suporta um grande número de operações matemáticas. Nesta parte, revisaremos as funções essenciais que você precisa conhecer para o tutorial sobre 'TensorFlow. '
Por que usar o NumPy?
NumPy é eficiência de memória, o que significa que pode lidar com uma grande quantidade de dados mais acessíveis do que qualquer outra biblioteca. Além disso, NumPy é muito conveniente de trabalhar, especialmente para multiplicação e remodelagem de matrizes. Além disso, o NumPy é rápido. Na verdade, TensorFlow e Scikit aprendem a usar o array NumPy para calcular a multiplicação de matrizes no back-end.
Como instalar o NumPy
Para instalar a biblioteca NumPy, consulte nosso tutorial Como instalar o TensorFlow. NumPy é instalado por padrão com Anaconda.
No caso remoto, NumPy não instalado-
Você pode instalar o NumPy usando o Anaconda:
conda install -c anaconda numpy
- In Jupyter Caderno :
import sys !conda install --yes --prefix {sys.prefix} numpy
Importe NumPy e verifique a versão
O comando para importar numpy é:
import numpy as np
O código acima renomeia o namespace Numpy para np. Isso nos permite prefixar funções, métodos e atributos Numpy com “np” em vez de digitar “numpy”. É o atalho padrão que você encontrará na literatura entorpecida
Para verificar sua versão instalada do NumPy, use o comando abaixo:
print (np.__version__)
Saída:
1.18.0
O que é o Python Matriz NumPy?
Matrizes NumPy são um pouco como Python listas, mas ainda muito diferentes ao mesmo tempo. Para aqueles que são novos no assunto, vamos esclarecer o que é exatamente e para que serve.
Como o nome indica, um array NumPy é uma estrutura de dados central da biblioteca numpy. O nome da biblioteca é na verdade uma abreviação de “Numeric Python” ou “Numérico Python".
Criando uma matriz NumPy
A maneira mais simples de criar um array em Numpy é usar Python Lista
myPythonList = [1,9,8,3]
Para converter a lista python em um array numpy usando o objeto np.array.
numpy_array_from_list = np.array(myPythonList)
Para exibir o conteúdo da lista
numpy_array_from_list
Saída:
array([1, 9, 8, 3])
Na prática, não há necessidade de declarar um Python Lista. A operação pode ser combinada.
a = np.array([1,9,8,3])
NOTA: A documentação do Numpy indica o uso de np.ndarray para criar um array. No entanto, este é o método recomendado.
Você também pode criar um array numpy a partir de uma tupla.
Matemático Operações em um array
Você poderia realizar operações matemáticas como adições, subtração, divisão e multiplicação em uma matriz. A sintaxe é o nome do array seguido pela operação (+.-,*,/) seguido pelo operando
Exemplo:
numpy_array_from_list + 10
Saída:
array([11, 19, 18, 13])
Esta operação adiciona 10 a cada elemento da matriz numpy.
Forma da Matriz
Você pode verificar o formato do array com o formato do objeto precedido pelo nome do array. Da mesma forma, você pode verificar o tipo com dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Um número inteiro é um valor sem decimal. Se você criar um array com decimal, o tipo mudará para float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Matriz de 2 dimensões
Você pode adicionar uma dimensão com um “,”vírgula
Observe que deve estar entre colchetes []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Matriz de 3 dimensões
Dimensão superior pode ser construída da seguinte forma:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Objetivo | Code |
---|---|
Criar matriz | matriz([1,2,3]) |
imprima a forma | matriz([.]).forma |
O que é numpy.zeros()?
numpy.zeros() ou np.zeros Python função é usada para criar uma matriz cheia de zeros. numpy.zeros() em Python pode ser usado quando você inicializa os pesos durante a primeira iteração no TensorFlow e outras tarefas estatísticas.
Sintaxe da função numpy.zeros()
numpy.zeros(shape, dtype=float, order='C')
Python Parâmetros numpy.zeros()
Aqui,
- Shape: é a forma da matriz numpy zero
- Tipo D: é o tipo de dados em zeros numpy. É opcional. O valor padrão é float64
- Order: O padrão é C, que é um estilo de linha essencial para numpy.zeros() em Python.
Python numpy.zeros() Exemplo
import numpy as np np.zeros((2,2))
Saída:
array([[0., 0.], [0., 0.]])
Exemplo de numpy zero com tipo de dados
import numpy as np np.zeros((2,2), dtype=np.int16)
Saída:
array([[0, 0], [0, 0]], dtype=int16)
O que é numpy.ones()?
função np.ones() é usado para criar uma matriz cheia de unidades. numpy.ones() em Python pode ser usado quando você inicializa os pesos durante a primeira iteração no TensorFlow e outras tarefas estatísticas.
Python Sintaxe numpy.ones()
numpy.ones(shape, dtype=float, order='C')
Python Parâmetros numpy.ones()
Aqui,
- Shape: é a forma dos np.ones Python Ordem
- Tipo D: é o tipo de dados em numpy. É opcional. O valor padrão é float64
- Order: O padrão é C, que é um estilo de linha essencial.
Python numpy.ones() Array 2D com exemplo de tipo de dados
import numpy as np np.ones((1,2,3), dtype=np.int16)
Saída:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
função numpy.reshape() em Python
Python Remodelação NumPy A função é usada para moldar um array sem alterar seus dados. Em algumas ocasiões, pode ser necessário remodelar os dados de largos para longos. Você pode usar a função np.reshape para isso.
Sintaxe de np.reshape()
numpy.reshape(a, newShape, order='C')
Aqui,
a: Array que você deseja remodelar
nova forma: A nova forma dos desejos
Order: O padrão é C, que é um estilo de linha essencial.
Exemplo de remodelação NumPy
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Saída:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() em Python
Python NumPy achatar A função é usada para retornar uma cópia do array em uma dimensão. Ao lidar com alguma rede neural como convnet, você precisa nivelar o array. Você pode usar as funções np.flatten() para isso.
Sintaxe de np.flatten()
numpy.flatten(order='C')
Aqui,
Order: O padrão é C, que é um estilo de linha essencial.
Exemplo de NumPy Flatten
e.flatten()
Saída:
array([1, 2, 3, 4, 5, 6])
O que é numpy.hstack() em Python?
Numpy.hstack é uma função em Python que é usado para empilhar horizontalmente sequências de matrizes de entrada para formar uma única matriz. Com a função hstack(), você pode anexar dados horizontalmente. É uma função muito conveniente no NumPy.
Vamos estudar hstack em Python com um exemplo:
Exemplo:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Saída:
Horizontal Append: [1 2 3 4 5 6]
O que é numpy.vstack() em Python?
Numpy.vstack é uma função em Python que é usado para empilhar verticalmente sequências de matrizes de entrada para formar uma única matriz. Com a função vstack(), você pode anexar dados verticalmente.
Vamos estudá-lo com um exemplo:
Exemplo:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Saída:
Vertical Append: [[1 2 3] [4 5 6]]
Depois de estudar NumPy vstack e hstack, vamos aprender um exemplo para gerar números aleatórios em NumPy.
Gerar Aleatório Numbers usando NumPy
Para gerar números aleatórios para distribuição gaussiana, use:
numpy.random.normal(loc, scale, size)
Aqui,
- Lugar: O significativo. O centro de distribuição
- Escala: desvio padrão.
- Tamanho: número de devoluções
Exemplo:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Se plotada, a distribuição será semelhante ao gráfico a seguir
Função NumPy Asarray
A função asarray() é usada quando você deseja converter uma entrada em um array. A entrada pode ser listas, tupla, ndarray, etc.
Sintaxe:
numpy.asarray(data, dtype=None, order=None)[source]
Aqui,
dados,: Dados que você deseja converter em um array
dtipo: Este é um argumento opcional. Se não for especificado, o tipo de dados é inferido dos dados de entrada
Order: O padrão é C, que é um estilo de linha essencial. Outra opção é F (estilo Fortan)
Exemplo:
Considere a seguinte matriz 2-D com quatro linhas e quatro colunas preenchidas por 1
import numpy as np A = np.matrix(np.ones((4,4)))
Se você quiser alterar o valor da matriz, não poderá. A razão é que não é possível alterar uma cópia.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matriz é imutável. Você pode usar asarray se quiser adicionar modificações no array original. Vamos ver se ocorre alguma alteração quando você deseja alterar o valor das terceiras linhas com o valor 2.
np.asarray(A)[2]=2 print(A)
Explicação do código:
np.asarray(A): converte a matriz A em um array
[2]: selecione as terceiras linhas
Saída:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
O que é numpy.arange()?
numpy.arange() é uma função numpy embutida que retorna um objeto ndarray contendo valores espaçados uniformemente dentro de um intervalo definido. Por exemplo, você deseja criar valores de 1 a 10; você pode usar np.arange() em Python função.
Sintaxe:
numpy.arange(start, stop, step, dtype)
Python Parâmetros do intervalo NumPy:
- Início: Início do intervalo para np.arange em Python função.
- Dê um basta: Fim do intervalo.
- Passo: Espaçamento entre valores. A etapa padrão é 1.
- Tipo D: É um tipo de saída de array para intervalo NumPy em Python.
Exemplo:
import numpy np np.arange(1, 11)
Saída:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Exemplo:
Se você quiser alterar a etapa desta função NumPy arange em Python por exemplo, você pode adicionar um terceiro número entre parênteses. Isso mudará o passo.
import numpy np np.arange(1, 14, 4)
Saída:
array([ 1, 5, 9, 13])
Função NumPy Linspace
Linspace fornece amostras uniformemente espaçadas.
Sintaxe:
numpy.linspace(start, stop, num, endpoint)
Aqui,
- Início: Valor inicial da sequência
- Dê um basta: Valor final da sequência
- Num: Número de amostras a serem geradas. O padrão é 50
- Ponto final: Se True (padrão), stop será o último valor. Se for falso, o valor de parada não será incluído.
Exemplo:
Por exemplo, pode ser usado para criar 10 valores de 1 a 5 com espaçamento uniforme.
import numpy as np np.linspace(1.0, 5.0, num=10)
Saída:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Se não quiser incluir o último dígito no intervalo, você pode definir o ponto final como falso
np.linspace(1.0, 5.0, num=5, endpoint=False)
Saída:
array([1. , 1.8, 2.6, 3.4, 4.2])
Função LogSpace NumPy em Python
LogSpace retorna números pares com espaçamento em uma escala logarítmica. Logspace tem os mesmos parâmetros que np.linspace.
Sintaxe:
numpy.logspace(start, stop, num, endpoint)
Exemplo:
np.logspace(3.0, 4.0, num=4)
Saída:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Finalmente, se você quiser verificar o tamanho da memória de um elemento em um array, você pode usar itemsize
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Saída:
16
Cada elemento ocupa 16 bytes.
Indexação e divisão Python
Fatiar dados é trivial com numpy. Vamos fatiar a matriz “e”. Observe que, em Python, você precisa usar os colchetes para retornar as linhas ou colunas
Exemplo:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Lembre-se de que com numpy a primeira matriz/coluna começa em 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Saída:
First row: [1 2 3] Second row: [4 5 6]
In Python, como muitas outras línguas,
- Os valores antes da vírgula representam as linhas
- O valor nos direitos representa as colunas.
- Se quiser selecionar uma coluna, você precisa adicionar: antes do índice da coluna.
- : significa que você deseja todas as linhas da coluna selecionada.
print('Second column:', e[:,1])
Second column: [2 5]
Para retornar os dois primeiros valores da segunda linha. Você usa: para selecionar todas as colunas até a segunda
## Second Row, two values print(e[1, :2]) [4 5]
Funções estatísticas em Python
NumPy tem algumas funções estatísticas úteis para encontrar mínimo, máximo, desvio padrão percentil e variância, etc., dos elementos fornecidos na matriz. As funções são explicadas a seguir -
Numpy está equipado com a função estatística robusta listada abaixo
função | Numpy |
---|---|
min | np.min() |
Max | np.max() |
Média | np.média() |
Mediana | np.mediana() |
Desvio padrão | np.std() |
Considere a seguinte matriz:
Exemplo:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Saída:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Exemplo de função estatística NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Saída:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
O que é produto escalar numpy?
Produto Numpy.dot é uma biblioteca poderosa para computação matricial. Por exemplo, você pode calcular o produto escalar com np.dot. O produto Numpy.dot é o produto escalar de a e b. numpy.dot() em Python lida com matrizes 2D e realiza multiplicações de matrizes.
Sintaxe:
numpy.dot(x, y, out=None)
parâmetros
Aqui,
x, y: Matrizes de entrada. x e y devem ser 1-D ou 2-D para que a função np.dot() funcione
Fora: este é o argumento de saída para o escalar da matriz 1-D a ser retornado. Caso contrário, ndarray deverá ser retornado.
Returns
A função numpy.dot() em Python retorna um produto Dot de dois arrays x e y. A função dot() retorna um escalar se ambos x e y forem 1-D; caso contrário, retorna um array. Se 'out' for fornecido, ele será retornado.
Eleva
Produto escalar em Python gera uma exceção ValueError se a última dimensão de x não tiver o mesmo tamanho que a penúltima dimensão de y.
Exemplo:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Saída:
14
Multiplicação de matrizes em Python
A função Numpy matmul() é usada para retornar o produto da matriz de 2 arrays. Aqui está como funciona
1) Matrizes 2-D, retorna produto normal
2) Dimensões > 2, o produto é tratado como uma pilha de matrizes
3) A matriz 1-D é primeiro promovida a uma matriz e, em seguida, o produto é calculado
Sintaxe:
numpy.matmul(x, y, out=None)
Aqui,
x, y: Matrizes de entrada. escalares não permitidos
Fora: Este é um parâmetro opcional. Normalmente a saída é armazenada em ndarray
Exemplo:
Da mesma forma, você pode calcular a multiplicação de matrizes com np.matmul
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Saída:
array([[19, 22], [43, 50]])
determinante
Por último, mas não menos importante, se precisar calcular o determinante, você pode usar np.linalg.det(). Observe que numpy cuida da dimensão.
Exemplo:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Saída:
-2.000000000000005
Resumo
- Python é uma biblioteca de código aberto disponível em Python, que ajuda em matemática, ciência, engenharia e programação de ciência de dados.
- numpy.zeros() ou np.zeros Python função é usada para criar uma matriz cheia de zeros.
- numpy.ones() em Python pode ser usado quando você inicializa os pesos durante a primeira iteração no TensorFlow e outras tarefas estatísticas.
- Python A função NumPy Reshape é usada para moldar um array sem alterar seus dados.
- Python A função NumPy Flatten é usada para retornar uma cópia do array em uma dimensão.
- Numpy.hstack é uma função em Python que é usado para empilhar horizontalmente sequências de matrizes de entrada para formar uma única matriz.
- Numpy.vstack é uma função em Python que é usado para empilhar verticalmente sequências de matrizes de entrada para formar uma única matriz.
- numpy.arange() é uma função numpy embutida que retorna um objeto ndarray contendo valores espaçados uniformemente dentro de um intervalo definido.
- O produto Numpy.dot é uma biblioteca poderosa para computação matricial.
- A função Numpy matmul() é usada para retornar o produto da matriz de 2 arrays.