Python Tutorial de NumPy para Iniciantes

โšก Resumo Inteligente

NumPy รฉ fundamental. Python Biblioteca NumPy para computaรงรฃo numรฉrica, que permite trabalhar com arrays, matrizes, รกlgebra linear e amostragem aleatรณria. Este tutorial do NumPy aborda a instalaรงรฃo, a criaรงรฃo de arrays e o reshapeamento.ping, fatiamento, estatรญsticas e matemรกtica matricial com executรกvel Python exemplos.

  • โœ… Uso principal: Matrizes rรกpidas de dimensรฃo N e matemรกtica vetorizada em Python.
  • โš™๏ธ Principais funรงรตes: zeros, uns, reshape, hstack, dot, linspace.
  • ๐Ÿ“š Foundations: รlgebra linear, transmissรฃo, estatรญstica, fatiamento.
  • ๐Ÿš€ Versรฃo atual: O NumPy 2.x (lanรงado em junho de 2024) agora estรก estรกvel.
  • ๐Ÿค– Uso da IA: Base do PyTorTensores ch, TensorFlow, JAX e CuPy.

Python Tutorial NumPy

O que รฉ NumPy em Python?

NumPy รฉ uma fonte aberta Python Biblioteca para programaรงรฃo matemรกtica, cientรญfica, de engenharia e de ciรชncia de dados. ร‰ uma biblioteca muito รบtil para operaรงรตes matemรกticas e estatรญsticas em PythonEle funciona perfeitamente com matrizes multidimensionais e multiplicaรงรฃo de matrizes, e se integra facilmente com C/C++ e Fortran.

Para qualquer projeto cientรญfico, o NumPy รฉ a ferramenta essencial. Ele foi desenvolvido para trabalhar com arrays N-dimensionais, รกlgebra linear, geraรงรฃo de nรบmeros aleatรณrios, transformadas de Fourier e muito mais.

NumPy fornece Python Suporte de primeira classe para matrizes e arrays multidimensionais, alรฉm de um amplo conjunto de operaรงรตes matemรกticas que atuam sobre eles. Neste guia, revisaremos as funรงรตes essenciais que vocรช precisa conhecer antes de prosseguir para o tutorial sobre 'TensorFlow. '

Por que usar o NumPy?

NumPy รฉ eficiente em termos de memรณria, portanto, pode lidar com grandes volumes de dados numรฉricos com mais facilidade do que o NumPy puro. Python listas. Tambรฉm รฉ muito conveniente para multiplicaรงรฃo de matrizes e reshapeamento.pingE รฉ rรกpido porque o trabalho pesado รฉ delegado a rotinas C compiladas. De fato, bibliotecas como TensorFlow, PyTorO NumPy e o Scikit-learn dependem de arrays NumPy para cรกlculos matriciais em seu backend, o que faz do NumPy o elemento essencial e silencioso por trรกs da maioria dos fluxos de trabalho modernos de ciรชncia de dados e IA.

Como instalar o NumPy

Para instalar a biblioteca NumPy, consulte nosso tutorial. Como instalar o TensorFlow. NumPy รฉ instalado por padrรฃo com Anaconda.

Na rara eventualidade de o NumPy nรฃo estar instalado, utilize uma das opรงรตes abaixo.

Vocรช pode instalar o NumPy usando o Anaconda:

conda install -c anaconda numpy
  • In Jupyter notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy

Usuรกrios do Pip podem instalar ou atualizar com um รบnico comando:

pip install --upgrade numpy

Importe NumPy e verifique a versรฃo

O comando para importar numpy รฉ:

import numpy as np

A linha acima renomeia o namespace NumPy para npEste atalho permite prefixar funรงรตes, mรฉtodos e atributos do NumPy com np. em vez de typing numpy.E essa รฉ a convenรงรฃo padrรฃo que vocรช encontrarรก em todo o ecossistema NumPy.

Para verificar a versรฃo do NumPy instalada, use o comando abaixo:

print(np.__version__)

Saรญda:

2.1.3

O NumPy 2.0 foi lanรงado em junho de 2024 e รฉ a versรฃo principal estรกvel atual. Se o seu projeto ainda depende da API 1.x, fixe a versรฃo para a versรฃo correta. numpy<2 no seu arquivo de requisitos, pois alguns aliases legados, como np.float foram removidos na versรฃo 2.0.

O que รฉ uma Python Matriz NumPy?

Os arrays NumPy se parecem um pouco com Python ร€ primeira vista, parecem listas, mas se comportam de maneira muito diferente. Para os leitores que nรฃo estรฃo familiarizados com o assunto, vamos esclarecer o que รฉ um ndarray e por que ele รฉ importante.

Como o nome sugere, um array NumPy รฉ a estrutura de dados central da biblioteca NumPy. O prรณprio nome รฉ uma abreviaรงรฃo de "Numeric" (numรฉrico). Pythonโ€ ou โ€œNumรฉrico Pythonโ€, e o ndarray รฉ um bloco de memรณria homogรชneo e de tamanho fixo, com formato e tipo de dados conhecidos.

Criando uma matriz NumPy

A maneira mais simples de criar um array em NumPy รฉ comeรงar com um Python Lista.

myPythonList = [1,9,8,3]

converter o Python lista para um array NumPy usando np.array.

numpy_array_from_list = np.array(myPythonList)

Exiba o conteรบdo da matriz.

numpy_array_from_list

Saรญda:

array([1, 9, 8, 3])

Na prรกtica, nรฃo hรก necessidade de declarar um Python Primeiro, faรงa a lista. As duas etapas podem ser combinadas.

a = np.array([1,9,8,3])

OBSERVAร‡รƒO: A documentaรงรฃo do NumPy tambรฉm menciona np.ndarray, mas np.array ร‰ a funรงรฃo de fรกbrica recomendada para uso diรกrio.

Vocรช tambรฉm pode criar um array NumPy a partir de uma tupla da mesma maneira.

Matemรกtico Operaรงรตes em um array

Vocรช pode realizar operaรงรตes matemรกticas como adiรงรฃo, subtraรงรฃo e acrรฉscimo.tracoperaรงรตes de divisรฃo, multiplicaรงรฃo e operaรงรฃo em uma matriz. A sintaxe รฉ o nome da matriz, seguido pelo operador (+, -, *, /), seguido pelo operando. Essas operaรงรตes sรฃo vetorizadas, o que significa que o NumPy as aplica a cada elemento sem um operador explรญcito. Python loop.

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 de uma matriz com o shape atributo, acessado adicionando-o ao nome do array. Da mesma forma, vocรช pode verificar o tipo com dtype.

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 casas decimais. Se vocรช criar uma matriz com decimais, o tipo de dados (dtype) muda 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 uma vรญrgula dentro dos parรชnteses.

Observe que as tuplas internas devem estar dentro dos colchetes externos. [].

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

Matriz de 3 dimensรตes

Dimensรตes superiores podem ser construรญdas da mesma maneira.

### 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() or np.zeros รฉ um Python Funรงรฃo utilizada para criar uma matriz preenchida com zeros. numpy.zeros() ร‰ รบtil quando vocรช precisa inicializar pesos durante a primeira iteraรงรฃo no TensorFlow ou configurar buffers de espaรงo reservado para outras tarefas estatรญsticas.

Sintaxe da funรงรฃo numpy.zeros()

numpy.zeros(shape, dtype=float, order='C')

Python Parรขmetros numpy.zeros()

Aqui,

  • Shape: formato do array de zeros do NumPy.
  • Tipo D: tipo de dados dos elementos. ร‰ opcional e o valor padrรฃo รฉ float64.
  • PedidoO padrรฃo รฉ C, que รฉ o layout de ordem de linhas usado por numpy.zeros() in 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() Cria uma matriz preenchida com uns. numpy.ones() in Python ร‰ รบtil quando vocรช inicializa os pesos durante a primeira iteraรงรฃo no TensorFlow e para outras tarefas estatรญsticas.

Python Sintaxe numpy.ones()

numpy.ones(shape, dtype=float, order='C')

Python Parรขmetros numpy.ones()

Aqui,

  • Shape: formato dos np.ones Python Ordem.
  • Tipo D: tipo de dados dos elementos. ร‰ opcional e o valor padrรฃo รฉ float64.
  • PedidoO padrรฃo รฉ C, que รฉ o layout de ordem de linhas.

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 Altera o formato de uma matriz sem alterar seus dados. Pode ser necessรกrio remodelar dados de um formato amplo para um formato longo, ou converter de um vetor unidimensional para uma matriz bidimensional antes de alimentรก-los em um modelo. np.reshape A funรงรฃo resolve isso em uma รบnica chamada.

Sintaxe de np.reshape()

numpy.reshape(a, newShape, order='C')

Aqui,

a: matriz que vocรช deseja remodelar.

nova forma: a nova forma desejada.

PedidoO padrรฃo รฉ C, o layout de ordem de linhas.

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 Retorna uma cรณpia da matriz condensada em uma dimensรฃo. Ao trabalhar com redes neurais, como as redes convolucionais (convnets), muitas vezes รฉ necessรกrio achatar um tensor de imagem antes de passรก-lo para uma camada densa. np.flatten() A funรงรฃo resolve isso em uma รบnica chamada.

Sintaxe de np.flatten()

numpy.flatten(order='C')

Aqui,
PedidoO padrรฃo รฉ C, o layout de ordem de linhas.

Exemplo de NumPy Flatten

e.flatten()

Saรญda:

array([1, 2, 3, 4, 5, 6])

O que รฉ numpy.hstack() em Python?

numpy.hstack รฉ um Python Funรงรฃo usada para empilhar horizontalmente sequรชncias de arrays de entrada em um รบnico array. hstack()Vocรช adiciona dados ao longo do eixo da coluna. ร‰ um recurso muito รบtil do NumPy quando precisa mesclar vetores de caracterรญsticas lado a lado.

Vamos estudar hstack in Python com um exemplo.

Exemplo:

## Horizontal 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 รฉ um Python Funรงรฃo usada para empilhar verticalmente sequรชncias de arrays de entrada em um รบnico array. vstack(), vocรช adiciona dados ao longo do eixo das linhas, o que รฉ รบtil quando vocรช deseja combinar lotes de amostras.

Vamos analisar isso 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]]

Apรณs estudar NumPy vstack e hstackVamos analisar um exemplo que gera nรบmeros aleatรณrios em NumPy.

Gerar Aleatรณrio Numbers usando NumPy

Para gerar nรบmeros aleatรณrios a partir de uma distribuiรงรฃo gaussiana, utilize:

numpy.random.normal(loc, scale, size)

Aqui,

  • LugarA mรฉdia. O centro da distribuiรงรฃo.
  • Escala: o desvio padrรฃo.
  • Dimensรตes:: nรบmero de amostras devolvidas.

Exemplo:

## Generate random numbers from a 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 representada graficamente, 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

Note que os cรณdigos mais recentes utilizam cada vez mais a API de geradores moderna. np.random.default_rng(), que รฉ a substituiรงรฃo recomendada para a versรฃo legada np.random.normal chamadas em NumPy 2.x.

Funรงรฃo NumPy Asarray

O asarray() A funรงรฃo converte uma entrada em um array. A entrada pode ser uma lista, tupla, ndarray ou sequรชncia similar.

Sintaxe:

numpy.asarray(data, dtype=None, order=None)

Aqui,

dados,: dados que vocรช deseja converter em uma matriz.

dtipo: opcional. Se nรฃo for especificado, o tipo de dados serรก inferido a partir dos dados de entrada.

PedidoO padrรฃo รฉ C, o layout de ordem de linhas. A outra opรงรฃo รฉ F (Fortracoluna principal estilo n).

Exemplo:

Considere a seguinte matriz 2D com quatro linhas e quatro colunas, preenchida com 1.

import numpy as np
A = np.matrix(np.ones((4,4)))

Se vocรช tentar alterar um valor na matriz atravรฉs de np.array, o original nรฃo รฉ modificado. A razรฃo รฉ que np.array cria uma cรณpia da matriz.

np.array(A)[2]=2
print(A)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

A matriz permanece inalterada. Use asarray Quando vocรช deseja modificar a matriz original no mesmo local. Vejamos o que acontece quando vocรช define a terceira linha com o valor 2.

np.asarray(A)[2]=2
print(A)

Code Explicaรงรฃo:

np.asarray(A) converte a matriz A para uma visualizaรงรฃo em matriz.

[2] seleciona a terceira linha.

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 integrada do NumPy que retorna um ndarray contendo valores uniformemente espaรงados dentro de um intervalo definido. Por exemplo, para criar valores de 1 a 10, vocรช pode chamar np.arange() in Python.

Sintaxe:

numpy.arange(start, stop, step, dtype)

Python Parรขmetros do intervalo NumPy:

  • Comeรงar: inรญcio do intervalo para np.arange in Python.
  • Dรช um basta: fim do intervalo.
  • Passo: espaรงamento entre valores. O passo padrรฃo รฉ 1.
  • Tipo D: tipo da matriz de saรญda para NumPy arange.

Exemplo:

import numpy as np
np.arange(1, 11)

Saรญda:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Exemplo:

Para alterar a etapa neste NumPy arange Por exemplo, adicione um terceiro nรบmero entre parรชnteses. Isso altera o tamanho do passo.

import numpy as np
np.arange(1, 14, 4)

Saรญda:

array([ 1,  5,  9, 13])

Funรงรฃo NumPy Linspace

linspace Retorna amostras uniformemente espaรงadas entre dois pontos finais.

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: E se True (Padrรฃo) stop รฉ o รบltimo valor. Se False, stop nรฃo estรก incluรญdo.

Exemplo:

Por exemplo, pode ser usado para criar 10 valores uniformemente espaรงados de 1 a 5.

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 vocรช nรฃo quiser incluir o รบltimo dรญgito no intervalo, defina endpoint para False.

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 uniformemente espaรงados em uma escala logarรญtmica. logspace compartilha 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.        ])

Por fim, se vocรช quiser verificar o tamanho da memรณria de um รบnico elemento em uma matriz, 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 com NumPy รฉ simples. Vamos fatiar a matriz. e. em PythonVocรช usa colchetes para retornar 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 que no NumPy o primeiro รญndice do array comeรงa em 0.

## First row
print('First row:', e[0])

## Second row
print('Second row:', e[1])

Saรญda:

First row: [1 2 3]
Second row: [4 5 6]

In Python, assim como em muitas outras lรญnguas,

  • O valor antes da vรญrgula representa as linhas.
  • O valor apรณs a vรญrgula representa as colunas.
  • Se vocรช quiser selecionar uma coluna, adicione : 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, use : Selecionar todas as colunas atรฉ o segundo รญndice.

## Second Row, two values
print(e[1, :2])
[4 5]

Funรงรตes estatรญsticas em Python

O NumPy oferece um conjunto รบtil de funรงรตes estatรญsticas para encontrar o mรญnimo, o mรกximo, o percentil, o desvio padrรฃo, a variรขncia e muito mais em uma determinada matriz. As mais comuns estรฃo listadas abaixo.

O NumPy vem com ferramentas auxiliares estatรญsticas robustas, resumidas na tabela.

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รงรตes estatรญsticas do 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?

numpy.dot รฉ uma funรงรฃo poderosa para computaรงรฃo matricial. Por exemplo, vocรช pode calcular o produto escalar com np.dot. numpy.dot retorna o produto escalar de a e be lida com matrizes unidimensionais e bidimensionais. Para entradas bidimensionais, realiza multiplicaรงรฃo de matrizes.

Sintaxe:

numpy.dot(x, y, out=None)

Parรขmetros Tรฉcnicos

Aqui,

x, y: matrizes de entrada. x e y ambos devem ser 1D ou 2D para np.dot() para funcionar como um produto escalar ou multiplicaรงรฃo de matrizes.

Fora: argumento de saรญda opcional usado para capturar o resultado. Caso contrรกrio, um ndarray รฉ retornado.

Returns

A funรงรฃo numpy.dot() Retorna o produto escalar de duas matrizes. x e yRetorna um escalar quando ambos sรฃo unidimensionais; caso contrรกrio, retorna uma matriz. Se out Se for fornecido um array, esse array serรก retornado.

Eleva

O produto escalar em Python levanta um ValueError se a รบltima dimensรฃo de x nรฃo corresponde ร  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

O NumPy matmul() A funรงรฃo retorna o produto matricial de dois arrays. Veja como funciona.

1) Para matrizes 2D, retorna o produto matricial normal.

2) Para dimensรตes maiores que 2, o produto รฉ tratado como uma pilha de matrizes.

3) Primeiro, um array unidimensional รฉ promovido a uma matriz e, em seguida, o produto รฉ calculado.

O infixo @ operador, disponรญvel desde Python 3.5 รฉ uma abreviaรงรฃo para matmul e รฉ amplamente utilizado em cรณdigos modernos.

Sintaxe:

numpy.matmul(x, y, out=None)

Aqui,

x, y: matrizes de entrada. Valores escalares nรฃo sรฃo permitidos.

Fora: parรขmetro opcional. Normalmente, a saรญda รฉ armazenada em um ndarray.

Exemplo:

Da mesma forma, vocรช pode calcular a multiplicaรงรฃo de matrizes com np.matmul.

### Matmul: matrix 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

Se vocรช precisar calcular o determinante de uma matriz, use np.linalg.det()O NumPy cuida das dimensรตes para vocรช.

Exemplo:

## Determinant 2*2 matrix
### 5*8-7*6
np.linalg.det(i)

Saรญda:

-2.000000000000005

Explicaรงรฃo sobre a transmissรฃo em NumPy

A transmissรฃo (broadcasting) รฉ a regra que permite ao NumPy realizar operaรงรตes aritmรฉticas em arrays de formatos diferentes sem copiar os dados. Quando vocรช adiciona um escalar a um vetor unidimensional, ou um vetor unidimensional a uma matriz bidimensional, o NumPy estica o operando menor ao longo dos eixos ausentes para que os formatos se alinhem. Isso evita a necessidade de operaรงรตes aritmรฉticas explรญcitas. Python Os loops sรฃo um dos principais motivos pelos quais o cรณdigo NumPy parece rรกpido e conciso.

Duas formas sรฃo compatรญveis para transmissรฃo quando, comparadas da direita para a esquerda, cada par de dimensรตes รฉ igual ou uma delas รฉ igual a 1. Por exemplo, uma matriz de forma (3, 4) transmissรตes contra uma fileira de formas (4,) ou uma coluna de formato (3, 1)A mesma lรณgica que alimenta a normalizaรงรฃo em aprendizado de mรกquina, onde vocรช substituitracum vetor mรฉdio por caracterรญstica de um lote de amostras em uma รบnica linha. O broadcasting tambรฉm รฉ o modelo conceitual usado por bibliotecas de tensores como Py.Torch, TensorFlow e JAX, portanto, as regras que vocรช aprende aqui se aplicam diretamente ao cรณdigo da GPU.

Como o NumPy potencializa a IA e o aprendizado de mรกquina

O NumPy estรก presente em praticamente todas as aplicaรงรตes modernas. Python Pilha de IA. PyTorTensores ch, tensores eager do TensorFlow e arrays JAX expรตem as mesmas funcionalidades de broadcasting, fatiamento e reshapeamento.ping API que vocรช aprendeu sobre ndarrays do NumPy. Muitos tutoriais ainda alimentam os loops de treinamento de modelos com arrays NumPy prรฉ-processados, e os frameworks os aceitam sem nenhuma conversรฃo.

Trรชs padrรตes concretos mostram como o NumPy se conecta ao trabalho de IA atualmente. Primeiro, engenheiros de dados transformam recursos brutos em arrays NumPy antes de entregรก-los a pipelines do scikit-learn ou a conjuntos de dados do Hugging Face. Segundo, pesquisadores usam o NumPy como base para CPUs e, em seguida, o substituem pelo CuPy, que oferece uma API quase idรชntica, mas รฉ executado em GPUs NVIDIA por meio do CUDA. Terceiro, o JAX se baseia na API do NumPy para adicionar diferenciaรงรฃo automรกtica e compilaรงรฃo just-in-time, de modo que o mesmo cรณdigo executado em um laptop possa ser executado em TPUs na nuvem. A conclusรฃo รฉ que as habilidades com arrays que vocรช desenvolve com o NumPy sรฃo รบteis em todas as principais ferramentas de aprendizado profundo, o que torna este tutorial um passo valioso na jornada para o desenvolvimento de IA.

Perguntas Frequentes

NumPy oferece arrays N-dimensionais rรกpidos, matemรกtica vetorizada, รกlgebra linear, amostragem aleatรณria e transformadas de Fourier. Engenheiros e cientistas de dados o utilizam para computaรงรฃo numรฉrica, processamento de imagens e sinais, estatรญstica e como base para bibliotecas de alto nรญvel como pandas, scikit-learn e SciPy.

Um array NumPy armazena elementos de um tipo de dados fixo em um bloco contรญguo de memรณria, o que torna a matemรกtica vetorizada rรกpida. Python Listas podem conter objetos arbitrรกrios, suportam tipos mistos e dependem de loops por elemento, que sรฃo mais lentos; portanto, sรฃo flexรญveis, mas muito menos eficientes para grandes cargas de trabalho numรฉricas.

O NumPy 2.0, lanรงado em junho de 2024, mantรฉm a API principal de arrays estรกvel, mas remove aliases hรก muito obsoletos, como... np.float e np.inte reforรงa as regras de promoรงรฃo de tipos. A maior parte do cรณdigo de produรงรฃo precisa apenas de pequenas ediรงรตes. Pin numpy<2 se uma dependรชncia ainda nรฃo foi atualizada.

PyTorO TensorFlow e o ch modelam seus objetos tensores com base em ndarrays do NumPy. Eles compartilham a mesma forma, semรขntica de broadcasting e fatiamento, e ambos aceitam arrays do NumPy como entrada. As habilidades aprendidas com o NumPy sรฃo diretamente aplicรกveis โ€‹โ€‹ร  construรงรฃo de redes neurais, loops de treinamento e pipelines de prรฉ-processamento de tensores.

O NumPy padrรฃo รฉ executado na CPU. Para aceleraรงรฃo por GPU, use o CuPy, que espelha a API do NumPy em dispositivos NVIDIA CUDA, ou o JAX, que adiciona diferenciaรงรฃo automรกtica e compilaรงรฃo just-in-time para GPUs e TPUs. Ambos permitem reutilizar a maior parte do cรณdigo NumPy existente com alteraรงรตes mรญnimas para cargas de trabalho de IA.

O Anaconda inclui o NumPy por padrรฃo. Caso contrรกrio, execute pip install numpy or conda install -c anaconda numpyPara atualizar uma instalaรงรฃo existente para o NumPy 2.x, execute pip install --upgrade numpyVerifique a versรฃo ativa com print(np.__version__) dentro Python.

O recurso de broadcasting permite que o NumPy opere em arrays de formatos diferentes sem copiar os dados. O array menor รฉ virtualmente esticado para corresponder ao maior quando as dimensรตes sรฃo compatรญveis. Isso possibilita expressรตes concisas para normalizaรงรฃo, escalonamento e engenharia de recursos em fluxos de trabalho de aprendizado de mรกquina.

Resuma esta postagem com: