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 รฉ a 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
  • Pedido: 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
  • Pedido: 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

Pedido: 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,
Pedido: 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.
  • Dimensรตes:: 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

Exemplo para gerar aleatรณrio Numbers usando NumPy
Exemplo para gerar aleatรณrio Numbers usando NumPy

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

Pedido: 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:

  • Comeรงar: 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,

  • Comeรงar: 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 Tรฉcnicos

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.

Resuma esta postagem com: