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

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

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.