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 รฉ eficiente em termos de memรณria, o que significa que consegue lidar com grandes quantidades de dados de forma mais acessรญvel do que qualquer outra biblioteca. Alรฉm disso, NumPy รฉ muito conveniente de usar, especialmente para multiplicaรงรฃo de matrizes e redimensionamento.pingAlรฉm disso, o NumPy รฉ rรกpido. Na verdade, o TensorFlow e o Scikit-learn aprendem a usar arrays NumPy para calcular a multiplicaรงรฃo de matrizes no backend.

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 do Numpy com "np" em vez de "ty".ping "numpy." ร‰ a abreviaรงรฃo padrรฃo que vocรช encontrarรก na documentaรงรฃo do NumPy.

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รงรตes e outras operaรงรตes matemรกticas, como adiรงรตes e subtraรงรตes.tracoperaรงรตes de divisรฃo, multiplicaรงรฃo e operaรงรฃo em um vetor. A sintaxe รฉ o nome do vetor seguido pela operaรงรฃo (+, -, *, /) seguida 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)

Code Explicaรงรฃo:

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: