Buscar

NumPy_ the absolute basics for beginners NumPy v1 22 Manual(todo traduzido)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 1/29
NumPy: o básico absoluto para iniciantes 
Bem-vindo ao guia absoluto para iniciantes do NumPy! Se você tiver comentários ou sugestões, não
hesite em entrar em contato !
Bem-vindo ao NumPy! 
NumPy ( Numeric Python ) é uma biblioteca Python de código aberto que é usada em quase todos os
campos da ciência e engenharia. É o padrão universal para trabalhar com dados numéricos em Python
e está no centro dos ecossistemas cientí�cos Python e PyData. Os usuários do NumPy incluem todos,
desde codi�cadores iniciantes até pesquisadores experientes que fazem pesquisa e desenvolvimento
cientí�co e industrial de última geração. A API NumPy é usada extensivamente em Pandas, SciPy,
Matplotlib, scikit-learn, scikit-image e na maioria dos outros pacotes de ciência de dados e Python
cientí�cos.
A biblioteca NumPy contém matrizes multidimensionais e estruturas de dados de matriz (você
encontrará mais informações sobre isso em seções posteriores). Ele fornece ndarray , um objeto de
array n-dimensional homogêneo, com métodos para operar com e�ciência nele. NumPy pode ser
usado para realizar uma ampla variedade de operações matemáticas em arrays. Ele adiciona
poderosas estruturas de dados ao Python que garantem cálculos e�cientes com arrays e matrizes e
fornece uma enorme biblioteca de funções matemáticas de alto nível que operam nesses arrays e
matrizes.
Saiba mais sobre o NumPy aqui !
Instalando NumPy 
Para instalar o NumPy, é altamente recomendável usar uma distribuição cientí�ca do Python. Se você
estiver procurando as instruções completas para instalar o NumPy em seu sistema operacional,
consulte Instalando o NumPy .
Se você já possui o Python, pode instalar o NumPy com:
conda install numpy 
ou
pip install numpy 
Se você ainda não tem o Python, considere usar o Anaconda . É a maneira mais fácil de começar. O
bom de obter esta distribuição é o fato de que você não precisa se preocupar muito em instalar
separadamente o NumPy ou qualquer um dos principais pacotes que você usará para suas análises de
dados, como pandas, Scikit-Learn, etc.
Como importar NumPy 
Para acessar o NumPy e suas funções, importe-o em seu código Python assim:
import numpy as np 
Encurtamos o nome importado nppara melhor legibilidade do código usando NumPy. Esta é uma
convenção amplamente adotada que você deve seguir para que qualquer pessoa que trabalhe com
seu código possa entendê-lo facilmente.
Pesquise nos documento
O que é NumPy?
Instalação 
Início rápido do NumPy
NumPy: o básico absoluto para
iniciantes
Fundamentos do NumPy
Diversos
NumPy para usuários do MATLAB
Construindo a partir da fonte
Usando NumPy C-API
Tutoriais NumPy 
NumPy Como fazer
Para autores de pacotes
downstream
Guia do usuário e manual de
referência do F2PY
Glossário
Documentação sob o capô para
desenvolvedores
Relatando bugs
Notas de lançamento
Licença NumPy
https://numpy.org/community/
https://numpy.org/doc/stable/user/whatisnumpy.html#whatisnumpy
https://numpy.org/install/
https://www.anaconda.com/
https://numpy.org/doc/stable/user/whatisnumpy.html
https://numpy.org/install/
https://numpy.org/doc/stable/user/quickstart.html
https://numpy.org/doc/stable/user/basics.html
https://numpy.org/doc/stable/user/misc.html
https://numpy.org/doc/stable/user/numpy-for-matlab-users.html
https://numpy.org/doc/stable/user/building.html
https://numpy.org/doc/stable/user/c-info.html
https://numpy.org/numpy-tutorials/features.html
https://numpy.org/doc/stable/user/howtos_index.html
https://numpy.org/doc/stable/user/depending_on_numpy.html
https://numpy.org/doc/stable/f2py/index.html
https://numpy.org/doc/stable/glossary.html
https://numpy.org/doc/stable/dev/underthehood.html
https://numpy.org/doc/stable/bugs.html
https://numpy.org/doc/stable/release.html
https://numpy.org/doc/stable/license.html
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 2/29
Lendo o código de exemplo 
Se você ainda não se sente à vontade para ler tutoriais que contêm muito código, talvez não saiba
como interpretar um bloco de código parecido com este:
>>> a = np.arange(6) 
>>> a2 = a[np.newaxis, :] 
>>> a2.shape 
(1, 6) 
Se você não estiver familiarizado com este estilo, é muito fácil de entender. Se vir >>>, você está vendo
input ou o código que você inseriria. Tudo o que não tem >>>na frente é output , ou os resultados da
execução do seu código. Este é o estilo que você vê quando executa pythonna linha de comando, mas
se estiver usando o IPython, poderá ver um estilo diferente. Observe que não faz parte do código e
causará um erro se digitado ou colado no shell do Python. Ele pode ser digitado ou colado com
segurança no shell do IPython; o >>> é ignorado.
Qual é a diferença entre uma lista Python e uma
matriz NumPy? 
O NumPy oferece uma enorme variedade de maneiras rápidas e e�cientes de criar matrizes e
manipular dados numéricos dentro delas. Embora uma lista Python possa conter diferentes tipos de
dados em uma única lista, todos os elementos em uma matriz NumPy devem ser homogêneos. As
operações matemáticas que devem ser executadas em arrays seriam extremamente ine�cientes se os
arrays não fossem homogêneos.
Por que usar NumPy?
As matrizes NumPy são mais rápidas e compactas do que as listas do Python. Uma matriz consome
menos memória e é conveniente de usar. O NumPy usa muito menos memória para armazenar dados
e fornece um mecanismo para especi�car os tipos de dados. Isso permite que o código seja otimizado
ainda mais.
O que é uma matriz? 
Um array é uma estrutura de dados central da biblioteca NumPy. Uma matriz é uma grade de valores
e contém informações sobre os dados brutos, como localizar um elemento e como interpretar um
elemento. Possui uma grade de elementos que podem ser indexados de várias maneiras . Os
elementos são todos do mesmo tipo, chamados de array dtype.
Um array pode ser indexado por uma tupla de inteiros não negativos, por booleanos, por outro array
ou por inteiros. O rankda matriz é o número de dimensões. O shapeda matriz é uma tupla de inteiros
que fornece o tamanho da matriz ao longo de cada dimensão.
Uma maneira de inicializar matrizes NumPy é a partir de listas do Python, usando listas aninhadas
para dados de duas dimensões ou mais.
Por exemplo:
>>> a = np.array([1, 2, 3, 4, 5, 6]) 
ou:
>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Podemos acessar os elementos do array usando colchetes. Quando você estiver acessando
elementos, lembre-se que a indexação no NumPy começa em 0. Isso signi�ca que se você quiser
acessar o primeiro elemento em seu array, você estará acessando o elemento “0”.
https://numpy.org/doc/stable/user/quickstart.html#quickstart-indexing-slicing-and-iterating
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 3/29
>>> print(a[0]) 
[1 2 3 4] 
Mais informações sobre arrays 
Esta seção abrangeEsta seção abrange , , , ,1D array2D arrayndarrayvectormatrix
Ocasionalmente, você pode ouvir uma matriz chamada de “ndarray”, que é a abreviação de “matriz N-
dimensional”. Uma matriz N-dimensional é simplesmente uma matriz com qualquer número de
dimensões. Você também pode ouvir 1-D ou array unidimensional, 2-D ou array bidimensional e assim
por diante. A ndarrayclasse NumPy é usada para representar matrizes e vetores. Um vetor é um array
com uma única dimensão (não há diferença entre vetores de linha e coluna), enquanto uma matriz se
refere a um array com duas dimensões. Para matrizes dimensionais 3-D ou superiores, o termo
tensor também é comumente usado.
Quais são os atributos de um array?
Uma matriz geralmente é um contêiner de tamanho �xo de itens do mesmo tipo e tamanho. O
número de dimensões e itens em uma matriz é de�nido por sua forma.A forma de uma matriz é uma
tupla de inteiros não negativos que especi�cam os tamanhos de cada dimensão.
No NumPy, as dimensões são chamadas de eixos . Isso signi�ca que, se você tiver uma matriz 2D que
se pareça com isso:
[[0., 0., 0.], 
 [1., 1., 1.]] 
Sua matriz tem 2 eixos. O primeiro eixo tem um comprimento de 2 e o segundo eixo tem um
comprimento de 3.
Assim como em outros objetos de contêiner do Python, o conteúdo de um array pode ser acessado e
modi�cado indexando ou fatiando o array. Ao contrário dos objetos de contêiner típicos, arrays
diferentes podem compartilhar os mesmos dados, portanto, as alterações feitas em um array podem
ser visíveis em outro.
Os atributos do array re�etem informações intrínsecas ao próprio array. Se você precisar obter, ou
mesmo de�nir, propriedades de um array sem criar um novo array, muitas vezes poderá acessar um
array por meio de seus atributos.
Leia mais sobre atributos de array aqui e aprenda sobre objetos de array aqui .
Como criar um array básico 
Esta seção abrangeEsta seção abrange np.array() , np.zeros(), np.ones(), np.empty(), np.arange(),
np.linspace(),dtype
Para criar um array NumPy, você pode usar a função np.array().
Tudo o que você precisa fazer para criar um array simples é passar uma lista para ele. Se desejar, você
também pode especi�car o tipo de dados em sua lista. Você pode encontrar mais informações sobre
tipos de dados aqui .
>>> import numpy as np 
>>> a = np.array([1, 2, 3]) 
Você pode visualizar seu array desta forma:
https://numpy.org/doc/stable/reference/arrays.ndarray.html#arrays-ndarray
https://numpy.org/doc/stable/reference/arrays.html#arrays
https://numpy.org/doc/stable/reference/arrays.dtypes.html#arrays-dtypes
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 4/29
Esteja ciente de que essas visualizações destinam-se a simpli�car ideias e fornecer uma compreensão
básica dos conceitos e mecânica do NumPy. Arrays e operações de array são muito mais complicados do
que são capturados aqui!
Além de criar um array a partir de uma sequência de elementos, você pode facilmente criar um array
preenchido com 0's:
>>> np.zeros(2) 
array([0., 0.]) 
Ou um array preenchido com 1's:
>>> np.ones(2) 
array([1., 1.]) 
Ou até mesmo uma matriz vazia! A função emptycria um array cujo conteúdo inicial é aleatório e
depende do estado da memória. A razão para usar emptyover zeros(ou algo semelhante) é a
velocidade - apenas certi�que-se de preencher todos os elementos depois!
>>> # Create an empty array with 2 elements 
>>> np.empty(2) 
array([ 3.14, 42. ]) # may vary 
Você pode criar uma matriz com um intervalo de elementos:
>>> np.arange(4) 
array([0, 1, 2, 3]) 
E até mesmo uma matriz que contém um intervalo de intervalos uniformemente espaçados. Para
fazer isso, você especi�cará o primeiro número , o último número e o tamanho da etapa .
>>> np.arange(2, 9, 2) 
array([2, 4, 6, 8]) 
Você também pode usar np.linspace()para criar uma matriz com valores espaçados linearmente em
um intervalo especi�cado:
>>> np.linspace(0, 10, num=5) 
array([ 0. , 2.5, 5. , 7.5, 10. ]) 
Especi�cando seu tipo de dados
Embora o tipo de dados padrão seja ponto �utuante ( np.float64), você pode especi�car
explicitamente qual tipo de dados deseja usando a dtypepalavra - chave.
>>> x = np.ones(2, dtype=np.int64) 
>>> x 
array([1, 1]) 
Saiba mais sobre como criar matrizes aqui
Adicionando, removendo e classificando elementos 
https://numpy.org/doc/stable/user/quickstart.html#quickstart-array-creation
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 5/29
Esta seção abrangeEsta seção abrange np.sort() ,np.concatenate()
Classi�car um elemento é simples com np.sort(). Você pode especi�car o eixo, tipo e ordem ao
chamar a função.
Se você começar com esta matriz:
>>> arr = np.array([2, 1, 5, 3, 7, 4, 6, 8])
Você pode classi�car rapidamente os números em ordem crescente com:
>>> np.sort(arr) 
array([1, 2, 3, 4, 5, 6, 7, 8]) 
Além de sort, que retorna uma cópia ordenada de um array, você pode usar:
argsort, que é uma classi�cação indireta ao longo de um eixo especi�cado,
lexsort, que é uma classi�cação estável indireta em várias chaves,
searchsorted, que encontrará elementos em uma matriz classi�cada e
partition, que é uma ordenação parcial.
Para ler mais sobre como classi�car uma matriz, consulte: sort.
Se você começar com esses arrays:
>>> a = np.array([1, 2, 3, 4]) 
>>> b = np.array([5, 6, 7, 8]) 
Você pode concatená-los com np.concatenate().
>>> np.concatenate((a, b)) 
array([1, 2, 3, 4, 5, 6, 7, 8]) 
Ou, se você começar com esses arrays:
>>> x = np.array([[1, 2], [3, 4]]) 
>>> y = np.array([[5, 6]]) 
Você pode concatená-los com:
>>> np.concatenate((x, y), axis=0) 
array([[1, 2], 
 [3, 4], 
 [5, 6]]) 
Para remover elementos de um array, é simples usar a indexação para selecionar os elementos que
você deseja manter.
Para ler mais sobre concatenar, consulte: concatenate.
Como você sabe a forma e o tamanho de uma
matriz? 
Esta seção abrangeEsta seção abrange ndarray.ndim , ndarray.size,ndarray.shape
ndarray.ndim lhe dirá o número de eixos, ou dimensões, da matriz.
ndarray.sizelhe dirá o número total de elementos da matriz. Este é o produto dos elementos da
forma da matriz.
https://numpy.org/doc/stable/reference/generated/numpy.argsort.html#numpy.argsort
https://numpy.org/doc/stable/reference/generated/numpy.lexsort.html#numpy.lexsort
https://numpy.org/doc/stable/reference/generated/numpy.searchsorted.html#numpy.searchsorted
https://numpy.org/doc/stable/reference/generated/numpy.partition.html#numpy.partition
https://numpy.org/doc/stable/reference/generated/numpy.sort.html#numpy.sort
https://numpy.org/doc/stable/reference/generated/numpy.concatenate.html#numpy.concatenate
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 6/29
ndarray.shapeexibirá uma tupla de inteiros que indicam o número de elementos armazenados ao
longo de cada dimensão do array. Se, por exemplo, você tiver um array 2-D com 2 linhas e 3 colunas, a
forma do seu array será .(2, 3)
Por exemplo, se você criar esta matriz:
>>> array_example = np.array([[[0, 1, 2, 3], 
... [4, 5, 6, 7]], 
... 
... [[0, 1, 2, 3], 
... [4, 5, 6, 7]], 
... 
... [[0 ,1 ,2, 3], 
... [4, 5, 6, 7]]]) 
Para encontrar o número de dimensões da matriz, execute:
>>> array_example.ndim 
3 
Para encontrar o número total de elementos na matriz, execute:
>>> array_example.size 
24 
E para encontrar a forma do seu array, execute:
>>> array_example.shape 
(3, 2, 4) 
Você pode remodelar uma matriz? 
Esta seção abrangeEsta seção abrange arr.reshape()
Sim!
Usar arr.reshape()dará uma nova forma a um array sem alterar os dados. Apenas lembre-se que
quando você usa o método reshape, o array que você quer produzir precisa ter o mesmo número de
elementos que o array original. Se você começar com um array com 12 elementos, precisará certi�car-
se de que seu novo array também tenha um total de 12 elementos.
Se você começar com esta matriz:
>>> a = np.arange(6) 
>>> print(a) 
[0 1 2 3 4 5] 
Você pode usar reshape()para remodelar sua matriz. Por exemplo, você pode remodelar essa matriz
para uma matriz com três linhas e duas colunas:
>>> b = a.reshape(3, 2) 
>>> print(b) 
[[0 1] 
 [2 3] 
 [4 5]] 
Com np.reshape, você pode especi�car alguns parâmetros opcionais:
>>> np.reshape(a, newshape=(1, 6), order='C') 
array([[0, 1, 2, 3, 4, 5]]) 
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 7/29
a é a matriz a ser remodelada.
newshapeé a nova forma que você deseja.Você pode especi�car um inteiro ou uma tupla de inteiros.
Se você especi�car um número inteiro, o resultado será uma matriz desse tamanho. A forma deve ser
compatível com a forma original.
order: Csigni�ca ler/escrever os elementos usando ordem de índice semelhante a C, Fsigni�ca
ler/escrever os elementos usando ordem de índice semelhante a Fortran, A signi�ca ler/escrever os
elementos em ordem de índice semelhante a Fortran se a for Fortran contíguo na memória, C -como
ordem caso contrário. (Este é um parâmetro opcional e não precisa ser especi�cado.)
Se você quiser saber mais sobre a ordem C e Fortran, você pode ler mais sobre a organização interna
dos arrays NumPy aqui . Essencialmente, as ordens C e Fortran têm a ver com a forma como os
índices correspondem à ordem em que o array é armazenado na memória. Em Fortran, ao mover-se
pelos elementos de uma matriz bidimensional conforme ela é armazenada na memória, o primeiro
índice é o índice que varia mais rapidamente. À medida que o primeiro índice se move para a próxima
linha à medida que muda, a matriz é armazenada uma coluna de cada vez. É por isso que o Fortran é
considerado uma linguagem de coluna principal . Em C, por outro lado, o último índice muda mais
rapidamente. A matriz é armazenada por linhas, tornando-se uma linguagem de linha principal. O
que você faz para C ou Fortran depende se é mais importante preservar a convenção de indexação ou
não reordenar os dados.
Saiba mais sobre manipulação de formas aqui .
Como converter um array 1D em um array 2D (como
adicionar um novo eixo a um array) 
Esta seção abrange np.newaxis ,np.expand_dims
Você pode usar np.newaxise np.expand_dimspara aumentar as dimensões de sua matriz existente.
O uso np.newaxisaumentará as dimensões do seu array em uma dimensão quando usado uma vez.
Isso signi�ca que uma matriz 1D se tornará uma matriz 2D , uma matriz 2D se tornará uma matriz 3D
e assim por diante.
Por exemplo, se você começar com esta matriz:
>>> a = np.array([1, 2, 3, 4, 5, 6]) 
>>> a.shape 
(6,) 
Você pode usar np.newaxispara adicionar um novo eixo:
>>> a2 = a[np.newaxis, :] 
>>> a2.shape 
(1, 6) 
Você pode converter explicitamente uma matriz 1D com um vetor de linha ou um vetor de coluna
usando np.newaxis. Por exemplo, você pode converter uma matriz 1D em um vetor de linha inserindo
um eixo ao longo da primeira dimensão:
>>> row_vector = a[np.newaxis, :] 
>>> row_vector.shape 
(1, 6) 
Ou, para um vetor de coluna, você pode inserir um eixo ao longo da segunda dimensão:
>>> col_vector = a[:, np.newaxis] 
>>> col_vector.shape 
(6, 1) 
https://numpy.org/doc/stable/dev/internals.html#numpy-internals
https://numpy.org/doc/stable/user/quickstart.html#quickstart-shape-manipulation
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 8/29
Você também pode expandir uma matriz inserindo um novo eixo em uma posição especi�cada com
np.expand_dims.
Por exemplo, se você começar com esta matriz:
>>> a = np.array([1, 2, 3, 4, 5, 6]) 
>>> a.shape 
(6,) 
Você pode usar np.expand_dimspara adicionar um eixo na posição de índice 1 com:
>>> b = np.expand_dims(a, axis=1) 
>>> b.shape 
(6, 1) 
Você pode adicionar um eixo na posição de índice 0 com:
>>> c = np.expand_dims(a, axis=0) 
>>> c.shape 
(1, 6) 
Encontre mais informações sobre newaxis aqui e expand_dimsem expand_dims.
Indexação e fatiamento 
Você pode indexar e fatiar arrays NumPy da mesma forma que pode fatiar listas Python.
>>> data = np.array([1, 2, 3]) 
 
>>> data[1] 
2 
>>> data[0:2] 
array([1, 2]) 
>>> data[1:] 
array([2, 3]) 
>>> data[-2:] 
array([2, 3]) 
Você pode visualizar assim:
Você pode querer pegar uma seção de sua matriz ou elementos especí�cos da matriz para usar em
análises posteriores ou operações adicionais. Para fazer isso, você precisará dividir, dividir e/ou
indexar seus arrays.
Se você deseja selecionar valores de sua matriz que atendam a determinadas condições, é simples
com NumPy.
Por exemplo, se você começar com esta matriz:
>>> a = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Você pode imprimir facilmente todos os valores na matriz que são menores que 5.
https://numpy.org/doc/stable/reference/arrays.indexing.html#arrays-indexing
https://numpy.org/doc/stable/reference/generated/numpy.expand_dims.html#numpy.expand_dims
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 9/29
>>> print(a[a < 5]) 
[1 2 3 4] 
Você também pode selecionar, por exemplo, números iguais ou maiores que 5 e usar essa condição
para indexar uma matriz.
>>> five_up = (a >= 5) 
>>> print(a[five_up]) 
[ 5 6 7 8 9 10 11 12] 
Você pode selecionar elementos que são divisíveis por 2:
>>> divisible_by_2 = a[a%2==0] 
>>> print(divisible_by_2) 
[ 2 4 6 8 10 12] 
Ou você pode selecionar elementos que satisfaçam duas condições usando os operadores &e |:
>>> c = a[(a > 2) & (a < 11)] 
>>> print(c) 
[ 3 4 5 6 7 8 9 10] 
Você também pode usar os operadores lógicos & e | para retornar valores booleanos que especi�cam
se os valores em uma matriz atendem ou não a uma determinada condição. Isso pode ser útil com
matrizes que contêm nomes ou outros valores categóricos.
>>> five_up = (a > 5) | (a == 5) 
>>> print(five_up) 
[[False False False False] 
 [ True True True True] 
 [ True True True True]] 
Você também pode usar np.nonzero()para selecionar elementos ou índices de uma matriz.
Começando com esta matriz:
>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Você pode usar np.nonzero()para imprimir os índices de elementos que são, por exemplo, menores
que 5:
>>> b = np.nonzero(a < 5) 
>>> print(b) 
(array([0, 0, 0, 0]), array([0, 1, 2, 3])) 
Neste exemplo, uma tupla de matrizes foi retornada: uma para cada dimensão. A primeira matriz
representa os índices de linha onde esses valores são encontrados e a segunda matriz representa os
índices de coluna onde os valores são encontrados.
Se você quiser gerar uma lista de coordenadas onde os elementos existem, você pode compactar as
matrizes, iterar sobre a lista de coordenadas e imprimi-las. Por exemplo:
>>> list_of_coordinates= list(zip(b[0], b[1])) 
 
>>> for coord in list_of_coordinates: 
... print(coord) 
(0, 0) 
(0, 1) 
(0, 2) 
(0, 3) 
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 10/29
Você também pode usar np.nonzero()para imprimir os elementos em uma matriz que são menores
que 5 com:
>>> print(a[b]) 
[1 2 3 4] 
Se o elemento que você está procurando não existir no array, o array de índices retornado estará
vazio. Por exemplo:
>>> not_there = np.nonzero(a == 42) 
>>> print(not_there) 
(array([], dtype=int64), array([], dtype=int64)) 
Saiba mais sobre indexação e fatiamento aqui e aqui .
Leia mais sobre como usar a função diferente de zero em: nonzero.
Como criar um array a partir de dados existentes 
Esta seção abrange , , , , ,slicing and indexingnp.vstack()np.hstack()np.hsplit().view()copy()
Você pode criar facilmente uma nova matriz a partir de uma seção de uma matriz existente.
Digamos que você tenha este array:
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
Você pode criar uma nova matriz de uma seção de sua matriz a qualquer momento, especi�cando
onde deseja fatiar sua matriz.
>>> arr1 = a[3:8] 
>>> arr1 
array([4, 5, 6, 7, 8]) 
Aqui, você pegou uma seção do seu array da posição de índice 3 até a posição de índice 8.
Você também pode empilhar dois arrays existentes, tanto vertical quanto horizontalmente. Digamos
que você tenha dois arrays a1e a2:
>>> a1 = np.array([[1, 1], 
... [2, 2]]) 
 
>>> a2 = np.array([[3, 3], 
... [4, 4]]) 
Você pode empilhá-los verticalmente com vstack:
>>> np.vstack((a1, a2)) 
array([[1, 1], 
 [2, 2], 
 [3, 3], 
 [4, 4]])Ou empilhe-os horizontalmente com hstack:
>>> np.hstack((a1, a2)) 
array([[1, 1, 3, 3], 
 [2, 2, 4, 4]]) 
https://numpy.org/doc/stable/user/quickstart.html#quickstart-indexing-slicing-and-iterating
https://numpy.org/doc/stable/user/basics.indexing.html#basics-indexing
https://numpy.org/doc/stable/reference/generated/numpy.nonzero.html#numpy.nonzero
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 11/29
Você pode dividir um array em vários arrays menores usando hsplit. Você pode especi�car o número
de matrizes de formato igual a serem retornadas ou as colunas após as quais a divisão deve ocorrer.
Digamos que você tenha este array:
>>> x = np.arange(1, 25).reshape(2, 12) 
>>> x 
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 
 [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]]) 
Se você quisesse dividir essa matriz em três matrizes de formato igual, você executaria:
>>> np.hsplit(x, 3) 
[array([[1, 2, 3, 4], 
 [13, 14, 15, 16]]), array([[ 5, 6, 7, 8], 
 [17, 18, 19, 20]]), array([[ 9, 10, 11, 12], 
 [21, 22, 23, 24]])] 
Se você quisesse dividir sua matriz após a terceira e quarta coluna, você executaria:
>>> np.hsplit(x, (3, 4)) 
[array([[1, 2, 3], 
 [13, 14, 15]]), array([[ 4], 
 [16]]), array([[ 5, 6, 7, 8, 9, 10, 11, 12], 
 [17, 18, 19, 20, 21, 22, 23, 24]])] 
Saiba mais sobre empilhamento e divisão de arrays aqui .
Você pode usar o viewmétodo para criar um novo objeto de matriz que analisa os mesmos dados que
a matriz original (uma cópia super�cial ).
As visualizações são um conceito importante do NumPy! As funções NumPy, bem como operações
como indexação e fatiamento, retornarão visualizações sempre que possível. Isso economiza memória
e é mais rápido (nenhuma cópia dos dados precisa ser feita). No entanto, é importante estar ciente
disso - modi�car dados em uma exibição também modi�ca o array original!
Digamos que você crie este array:
>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Agora criamos um array b1fatiando ae modi�cando o primeiro elemento de b1. Isso também
modi�cará o elemento correspondente a!
>>> b1 = a[0, :] 
>>> b1 
array([1, 2, 3, 4]) 
>>> b1[0] = 99 
>>> b1 
array([99, 2, 3, 4]) 
>>> a 
array([[99, 2, 3, 4], 
 [ 5, 6, 7, 8], 
 [ 9, 10, 11, 12]]) 
O uso do copymétodo fará uma cópia completa do array e seus dados (uma cópia profunda ). Para
usar isso em seu array, você pode executar:
>>> b2 = a.copy() 
Saiba mais sobre cópias e visualizações aqui .
https://numpy.org/doc/stable/user/quickstart.html#quickstart-stacking-arrays
https://numpy.org/doc/stable/user/quickstart.html#quickstart-copies-and-views
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 12/29
Operações básicas de array 
Esta seção abrange adição, subtração, multiplicação, divisão e muito mais
Depois de criar seus arrays, você pode começar a trabalhar com eles. Digamos, por exemplo, que você
criou dois arrays, um chamado "dados" e outro chamado "uns"
Você pode adicionar as matrizes junto com o sinal de mais.
>>> data = np.array([1, 2]) 
>>> ones = np.ones(2, dtype=int) 
>>> data + ones 
array([2, 3]) 
Você pode, é claro, fazer mais do que apenas adição!
>>> data - ones 
array([0, 1]) 
>>> data * data 
array([1, 4]) 
>>> data / data 
array([1., 1.]) 
As operações básicas são simples com o NumPy. Se você quiser encontrar a soma dos elementos em
uma matriz, use sum(). Isso funciona para matrizes 1D, matrizes 2D e matrizes em dimensões mais
altas.
>>> a = np.array([1, 2, 3, 4]) 
 
>>> a.sum() 
10 
Para adicionar as linhas ou colunas em uma matriz 2D, você deve especi�car o eixo.
Se você começar com esta matriz:
>>> b = np.array([[1, 1], [2, 2]]) 
Você pode somar no eixo das linhas com:
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 13/29
>>> b.sum(axis=0) 
array([3, 3]) 
Você pode somar no eixo das colunas com:
>>> b.sum(axis=1) 
array([2, 4]) 
Saiba mais sobre as operações básicas aqui .
Transmissão 
Há momentos em que você pode querer realizar uma operação entre um array e um único número
(também chamado de operação entre um vetor e um escalar ) ou entre arrays de dois tamanhos
diferentes. Por exemplo, sua matriz (chamaremos de “dados”) pode conter informações sobre
distância em milhas, mas você deseja converter as informações em quilômetros. Você pode realizar
esta operação com:
>>> data = np.array([1.0, 2.0]) 
>>> data * 1.6 
array([1.6, 3.2]) 
O NumPy entende que a multiplicação deve acontecer com cada célula. Esse conceito é chamado de
radiodifusão . Broadcasting é um mecanismo que permite ao NumPy realizar operações em arrays de
diferentes formas. As dimensões do seu array devem ser compatíveis, por exemplo, quando as
dimensões de ambos os arrays forem iguais ou quando um deles for 1. Se as dimensões não forem
compatíveis, você obterá um ValueError.
Saiba mais sobre a transmissão aqui .
Operações de array mais úteis 
Esta seção abrange máximo, mínimo, soma, média, produto, desvio padrão e muito mais
O NumPy também executa funções de agregação. Além de min, max, e sum, você pode executar
facilmente meanpara obter a média, prodobter o resultado da multiplicação dos elementos, stdobter o
desvio padrão e muito mais.
>>> data.max() 
2.0 
>>> data.min() 
1.0 
>>> data.sum() 
3.0 
https://numpy.org/doc/stable/user/quickstart.html#quickstart-basic-operations
https://numpy.org/doc/stable/user/basics.broadcasting.html#basics-broadcasting
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 14/29
Vamos começar com este array, chamado “a”
>>> a = np.array([[0.45053314, 0.17296777, 0.34376245, 0.5510652], 
... [0.54627315, 0.05093587, 0.40067661, 0.55645993], 
... [0.12697628, 0.82485143, 0.26590556, 0.56917101]]) 
É muito comum querer agregar ao longo de uma linha ou coluna. Por padrão, cada função de
agregação NumPy retornará a agregação de todo o array. Para encontrar a soma ou o mínimo dos
elementos em sua matriz, execute:
>>> a.sum() 
4.8595784 
Ou:
>>> a.min() 
0.05093587 
Você pode especi�car em qual eixo deseja que a função de agregação seja calculada. Por exemplo,
você pode encontrar o valor mínimo em cada coluna especi�cando axis=0.
>>> a.min(axis=0) 
array([0.12697628, 0.05093587, 0.26590556, 0.5510652 ]) 
Os quatro valores listados acima correspondem ao número de colunas em sua matriz. Com uma
matriz de quatro colunas, você obterá quatro valores como resultado.
Leia mais sobre métodos de array aqui .
Criando matrizes 
Você pode passar listas de listas do Python para criar uma matriz 2-D (ou “matriz”) para representá-las
no NumPy.
>>> data = np.array([[1, 2], [3, 4], [5, 6]]) 
>>> data 
array([[1, 2], 
 [3, 4], 
 [5, 6]]) 
As operações de indexação e fatiamento são úteis ao manipular matrizes:
>>> data[0, 1] 
2 
>>> data[1:3] 
array([[3, 4], 
 [5, 6]]) 
>>> data[0:2, 0] 
array([1, 3]) 
https://numpy.org/doc/stable/reference/arrays.ndarray.html#array-ndarray-methods
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 15/29
Você pode agregar matrizes da mesma forma que agregou vetores:
>>> data.max() 
6 
>>> data.min() 
1 
>>> data.sum() 
21 
Você pode agregar todos os valores em uma matriz e agregá-los em colunas ou linhas usando o
axisparâmetro. Para ilustrar esse ponto, vejamos um conjunto de dados ligeiramente modi�cado:
>>> data = np.array([[1, 2], [5, 3], [4, 6]]) 
>>> data 
array([[1, 2], 
 [5, 3], 
 [4, 6]]) 
>>> data.max(axis=0) 
array([5, 6]) 
>>> data.max(axis=1) 
array([2, 5, 6]) 
Depois de criarsuas matrizes, você pode somá-las e multiplicá-las usando operadores aritméticos se
tiver duas matrizes do mesmo tamanho.
>>> data = np.array([[1, 2], [3, 4]]) 
>>> ones = np.array([[1, 1], [1, 1]]) 
>>> data + ones 
array([[2, 3], 
 [4, 5]]) 
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 16/29
Você pode fazer essas operações aritméticas em matrizes de tamanhos diferentes, mas somente se
uma matriz tiver apenas uma coluna ou uma linha. Nesse caso, o NumPy usará suas regras de
transmissão para a operação.
>>> data = np.array([[1, 2], [3, 4], [5, 6]]) 
>>> ones_row = np.array([[1, 1]]) 
>>> data + ones_row 
array([[2, 3], 
 [4, 5], 
 [6, 7]]) 
Esteja ciente de que quando o NumPy imprime matrizes N-dimensionais, o último eixo é colocado em
loop sobre o mais rápido, enquanto o primeiro eixo é o mais lento. Por exemplo:
>>> np.ones((4, 3, 2)) 
array([[[1., 1.], 
 [1., 1.], 
 [1., 1.]], 
 
 [[1., 1.], 
 [1., 1.], 
 [1., 1.]], 
 
 [[1., 1.], 
 [1., 1.], 
 [1., 1.]], 
 
 [[1., 1.], 
 [1., 1.], 
 [1., 1.]]]) 
Muitas vezes, queremos que o NumPy inicialize os valores de uma matriz. NumPy oferece funções
como ones()e zeros(), e a random.Generatorclasse para geração de números aleatórios para isso.
Tudo o que você precisa fazer é passar o número de elementos que deseja gerar:
>>> np.ones(3) 
array([1., 1., 1.]) 
>>> np.zeros(3) 
array([0., 0., 0.]) 
# the simplest way to generate random numbers 
>>> rng = np.random.default_rng(0) 
>>> rng.random(3) 
array([0.63696169, 0.26978671, 0.04097352]) 
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 17/29
Você também pode usar ones(), zeros(), e random()para criar uma matriz 2D se fornecer uma tupla
descrevendo as dimensões da matriz:
>>> np.ones((3, 2)) 
array([[1., 1.], 
 [1., 1.], 
 [1., 1.]]) 
>>> np.zeros((3, 2)) 
array([[0., 0.], 
 [0., 0.], 
 [0., 0.]]) 
>>> rng.random((3, 2)) 
array([[0.01652764, 0.81327024], 
 [0.91275558, 0.60663578], 
 [0.72949656, 0.54362499]]) # may vary 
Leia mais sobre como criar arrays, preenchidos com 0's, 1's, outros valores ou não inicializados, em
rotinas de criação de arrays .
Gerando números aleatórios 
O uso da geração de números aleatórios é uma parte importante da con�guração e avaliação de
muitos algoritmos numéricos e de aprendizado de máquina. Se você precisa inicializar pesos
aleatoriamente em uma rede neural arti�cial, dividir dados em conjuntos aleatórios ou embaralhar
aleatoriamente seu conjunto de dados, ser capaz de gerar números aleatórios (na verdade, números
pseudo-aleatórios repetíveis) é essencial.
Com Generator.integers, você pode gerar números inteiros aleatórios de baixo (lembre-se de que
isso é inclusivo com NumPy) a alto (exclusivo). Você pode de�nir endpoint=Truepara tornar o número
alto inclusivo.
Você pode gerar uma matriz 2 x 4 de inteiros aleatórios entre 0 e 4 com:
>>> rng.integers(5, size=(2, 4)) 
array([[2, 1, 1, 0], 
 [0, 0, 0, 4]]) # may vary 
Leia mais sobre geração de números aleatórios aqui .
Como obter itens e contagens únicas 
https://numpy.org/doc/stable/reference/routines.array-creation.html#routines-array-creation
https://numpy.org/doc/stable/reference/random/index.html#numpyrandom
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 18/29
Esta seção abrange np.unique()
Você pode encontrar os elementos exclusivos em uma matriz facilmente com np.unique.
Por exemplo, se você começar com esta matriz:
>>> a = np.array([11, 11, 12, 13, 14, 15, 16, 17, 12, 13, 11, 14, 18, 19, 20]) 
você pode usar np.uniquepara imprimir os valores exclusivos em sua matriz:
>>> unique_values = np.unique(a) 
>>> print(unique_values) 
[11 12 13 14 15 16 17 18 19 20] 
Para obter os índices de valores únicos em um array NumPy (um array das primeiras posições de
índice de valores únicos no array), apenas passe o return_index argumento np.unique()assim como
seu array.
>>> unique_values, indices_list = np.unique(a, return_index=True) 
>>> print(indices_list) 
[ 0 2 3 4 5 6 7 12 13 14] 
Você pode passar o return_countsargumento np.unique()junto com sua matriz para obter a
contagem de frequência de valores exclusivos em uma matriz NumPy.
>>> unique_values, occurrence_count = np.unique(a, return_counts=True) 
>>> print(occurrence_count) 
[3 2 2 2 1 1 1 1 1 1] 
Isso também funciona com matrizes 2D! Se você começar com esta matriz:
>>> a_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [1, 2, 3, 4]]) 
Você pode encontrar valores exclusivos com:
>>> unique_values = np.unique(a_2d) 
>>> print(unique_values) 
[ 1 2 3 4 5 6 7 8 9 10 11 12] 
Se o argumento do eixo não for passado, sua matriz 2D será achatada.
Se você deseja obter as linhas ou colunas exclusivas, certi�que-se de passar o axis argumento. Para
localizar as linhas exclusivas, especi�que axis=0e para colunas, especi�que axis=1.
>>> unique_rows = np.unique(a_2d, axis=0) 
>>> print(unique_rows) 
[[ 1 2 3 4] 
 [ 5 6 7 8] 
 [ 9 10 11 12]] 
Para obter as linhas exclusivas, a posição do índice e a contagem de ocorrências, você pode usar:
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 19/29
>>> unique_rows, indices, occurrence_count = np.unique( 
... a_2d, axis=0, return_counts=True, return_index=True) 
>>> print(unique_rows) 
[[ 1 2 3 4] 
 [ 5 6 7 8] 
 [ 9 10 11 12]] 
>>> print(indices) 
[0 1 2] 
>>> print(occurrence_count) 
[2 1 1] 
Para saber mais sobre como localizar os elementos exclusivos em uma matriz, consulte unique.
Transpondo e remodelando uma matriz 
Esta seção abrange arr.reshape() , arr.transpose(),arr.T
É comum precisar transpor suas matrizes. As matrizes NumPy têm a propriedade Tque permite
transpor uma matriz.
Você também pode precisar alternar as dimensões de uma matriz. Isso pode acontecer quando, por
exemplo, você tem um modelo que espera uma determinada forma de entrada diferente do seu
conjunto de dados. É aqui que o reshapemétodo pode ser útil. Você simplesmente precisa passar as
novas dimensões que deseja para a matriz.
>>> data.reshape(2, 3) 
array([[1, 2, 3], 
 [4, 5, 6]]) 
>>> data.reshape(3, 2) 
array([[1, 2], 
 [3, 4], 
 [5, 6]]) 
Você também pode usar .transpose()para reverter ou alterar os eixos de uma matriz de acordo com
os valores especi�cados.
Se você começar com esta matriz:
>>> arr = np.arange(6).reshape((2, 3)) 
>>> arr 
array([[0, 1, 2], 
 [3, 4, 5]]) 
https://numpy.org/doc/stable/reference/generated/numpy.unique.html#numpy.unique
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 20/29
Você pode transpor sua matriz com arr.transpose().
>>> arr.transpose() 
array([[0, 3], 
 [1, 4], 
 [2, 5]]) 
Você também pode usar arr.T:
>>> arr.T 
array([[0, 3], 
 [1, 4], 
 [2, 5]]) 
Para saber mais sobre como transpor e remodelar matrizes, consulte transposee reshape.
Como reverter um array 
Esta seção abrange np.flip()
A np.flip()função do NumPy permite inverter, ou reverter, o conteúdo de uma matriz ao longo de
um eixo. Ao usar np.flip(), especi�que a matriz que deseja reverter e o eixo. Se você não especi�car
o eixo, o NumPy reverterá o conteúdo ao longo de todos os eixos de sua matriz de entrada.
Revertendo uma matriz 1D
Se você começar com uma matriz 1D como esta:
>>> arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
Você pode reverter com:
>>> reversed_arr = np.flip(arr) 
Se você quiser imprimir seu array invertido, você pode executar:
>>> print('Reversed Array: ', reversed_arr) 
ReversedArray: [8 7 6 5 4 3 2 1] 
Revertendo uma matriz 2D
Uma matriz 2D funciona da mesma maneira.
Se você começar com esta matriz:
>>> arr_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Você pode reverter o conteúdo em todas as linhas e colunas com:
>>> reversed_arr = np.flip(arr_2d) 
>>> print(reversed_arr) 
[[12 11 10 9] 
 [ 8 7 6 5] 
 [ 4 3 2 1]] 
Você pode reverter facilmente apenas as linhas com:
https://numpy.org/doc/stable/reference/generated/numpy.transpose.html#numpy.transpose
https://numpy.org/doc/stable/reference/generated/numpy.reshape.html#numpy.reshape
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 21/29
>>> reversed_arr_rows = np.flip(arr_2d, axis=0) 
>>> print(reversed_arr_rows) 
[[ 9 10 11 12] 
 [ 5 6 7 8] 
 [ 1 2 3 4]] 
Ou inverta apenas as colunas com:
>>> reversed_arr_columns = np.flip(arr_2d, axis=1) 
>>> print(reversed_arr_columns) 
[[ 4 3 2 1] 
 [ 8 7 6 5] 
 [12 11 10 9]] 
Você também pode reverter o conteúdo de apenas uma coluna ou linha. Por exemplo, você pode
reverter o conteúdo da linha na posição de índice 1 (a segunda linha):
>>> arr_2d[1] = np.flip(arr_2d[1]) 
>>> print(arr_2d) 
[[ 1 2 3 4] 
 [ 8 7 6 5] 
 [ 9 10 11 12]] 
Você também pode reverter a coluna na posição de índice 1 (a segunda coluna):
>>> arr_2d[:,1] = np.flip(arr_2d[:,1]) 
>>> print(arr_2d) 
[[ 1 10 3 4] 
 [ 8 7 6 5] 
 [ 9 2 11 12]] 
Leia mais sobre inverter arrays em flip.
Remodelando e achatando arrays multidimensionais 
Esta seção abrange .flatten() ,ravel()
Existem duas maneiras populares de achatar uma matriz: .flatten()e .ravel(). A principal
diferença entre os dois é que o novo array criado usando ravel()é na verdade uma referência ao
array pai (ou seja, uma “view”). Isso signi�ca que qualquer alteração no novo array afetará o array pai
também. Como ravelnão cria uma cópia, é e�ciente em termos de memória.
Se você começar com esta matriz:
>>> x = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) 
Você pode usar flattenpara achatar sua matriz em uma matriz 1D.
>>> x.flatten() 
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) 
Quando você usa flatten, as alterações em seu novo array não alteram o array pai.
Por exemplo:
https://numpy.org/doc/stable/reference/generated/numpy.flip.html#numpy.flip
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 22/29
>>> a1 = x.flatten() 
>>> a1[0] = 99 
>>> print(x) # Original array 
[[ 1 2 3 4] 
 [ 5 6 7 8] 
 [ 9 10 11 12]] 
>>> print(a1) # New array 
[99 2 3 4 5 6 7 8 9 10 11 12] 
Mas quando você usa ravel, as alterações feitas no novo array afetarão o array pai.
Por exemplo:
>>> a2 = x.ravel() 
>>> a2[0] = 98 
>>> print(x) # Original array 
[[98 2 3 4] 
 [ 5 6 7 8] 
 [ 9 10 11 12]] 
>>> print(a2) # New array 
[98 2 3 4 5 6 7 8 9 10 11 12] 
Leia mais sobre flattenem ndarray.flattene ravelem ravel.
Como acessar a docstring para mais informações 
Esta seção abrange help() , ?,??
Quando se trata do ecossistema de ciência de dados, Python e NumPy são criados com o usuário em
mente. Um dos melhores exemplos disso é o acesso integrado à documentação. Cada objeto contém
a referência a uma string, que é conhecida como docstring . Na maioria dos casos, esta docstring
contém um resumo rápido e conciso do objeto e como usá-lo. O Python tem uma help() função
integrada que pode ajudá-lo a acessar essas informações. Isso signi�ca que quase sempre que você
precisar de mais informações, poderá usá help()-las para localizar rapidamente as informações de
que precisa.
Por exemplo:
>>> help(max) 
Help on built-in function max in module builtins: 
 
max(...) 
 max(iterable, *[, default=obj, key=func]) -> value 
 max(arg1, arg2, *args, *[, key=func]) -> value 
 
 With a single iterable argument, return its biggest item. The 
 default keyword-only argument specifies an object to return if 
 the provided iterable is empty. 
 With two or more arguments, return the largest argument. 
Como o acesso a informações adicionais é muito útil, o IPython usa o ? caractere como um atalho para
acessar esta documentação junto com outras informações relevantes. O IPython é um shell de
comando para computação interativa em vários idiomas. Você pode encontrar mais informações
sobre o IPython aqui .
Por exemplo:
https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flatten.html#numpy.ndarray.flatten
https://numpy.org/doc/stable/reference/generated/numpy.ravel.html#numpy.ravel
https://ipython.org/
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 23/29
In [0]: max? 
max(iterable, *[, default=obj, key=func]) -> value 
max(arg1, arg2, *args, *[, key=func]) -> value 
 
With a single iterable argument, return its biggest item. The 
default keyword-only argument specifies an object to return if 
the provided iterable is empty. 
With two or more arguments, return the largest argument. 
Type: builtin_function_or_method 
Você pode até usar essa notação para métodos de objetos e os próprios objetos.
Digamos que você crie este array:
>>> a = np.array([1, 2, 3, 4, 5, 6]) 
Então você pode obter muitas informações úteis (primeiros detalhes sobre asi mesmo, seguidos pela
docstring ndarrayde que aé uma instância):
In [1]: a? 
Type: ndarray 
String form: [1 2 3 4 5 6] 
Length: 6 
File: ~/anaconda3/lib/python3.7/site-packages/numpy/__init__.py 
Docstring: <no docstring> 
Class docstring: 
ndarray(shape, dtype=float, buffer=None, offset=0, 
 strides=None, order=None) 
 
An array object represents a multidimensional, homogeneous array 
of fixed-size items. An associated data-type object describes the 
format of each element in the array (its byte-order, how many bytes it 
occupies in memory, whether it is an integer, a floating point number, 
or something else, etc.) 
 
Arrays should be constructed using `array`, `zeros` or `empty` (refer 
to the See Also section below). The parameters given here refer to 
a low-level method (`ndarray(...)`) for instantiating an array. 
 
For more information, refer to the `numpy` module and examine the 
methods and attributes of an array. 
 
Parameters 
---------- 
(for the __new__ method; see Notes below) 
 
shape : tuple of ints 
 Shape of created array. 
... 
Isso também funciona para funções e outros objetos que você cria. Apenas lembre-se de incluir uma
docstring com sua função usando uma string literal ( ou em torno de sua documentação).""" """'''
'''
Por exemplo, se você criar esta função:
>>> def double(a): 
... '''Return a * 2''' 
... return a * 2 
Você pode obter informações sobre a função:
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 24/29
In [2]: double? 
Signature: double(a) 
Docstring: Return a * 2 
File: ~/Desktop/<ipython-input-23-b5adf20be596> 
Type: function 
Você pode alcançar outro nível de informação lendo o código-fonte do objeto em que está
interessado. O uso de um ponto de interrogação duplo ( ??) permite acessar o código-fonte.
Por exemplo:
In [3]: double?? 
Signature: double(a) 
Source: 
def double(a): 
 '''Return a * 2''' 
 return a * 2 
File: ~/Desktop/<ipython-input-23-b5adf20be596> 
Type: function 
Se o objeto em questão for compilado em uma linguagem diferente do Python, using ??retornará as
mesmas informações que ?. Você encontrará isso com muitos objetos e tipos internos, por exemplo:
In [4]: len? 
Signature: len(obj, /) 
Docstring: Return the number of items in a container. 
Type: builtin_function_or_method 
e :
In [5]: len?? 
Signature: len(obj, /) 
Docstring: Return the number of itemsin a container. 
Type: builtin_function_or_method 
têm a mesma saída porque foram compilados em uma linguagem de programação diferente do
Python.
Trabalhando com fórmulas matemáticas 
A facilidade de implementação de fórmulas matemáticas que funcionam em arrays é uma das coisas
que tornam o NumPy tão amplamente utilizado na comunidade cientí�ca Python.
Por exemplo, esta é a fórmula do erro quadrático médio (uma fórmula central usada em modelos de
aprendizado de máquina supervisionados que lidam com regressão):
Implementar esta fórmula é simples e direto no NumPy:
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 25/29
O que faz isso funcionar tão bem é que predictionse labelspode conter um ou mil valores. Eles só
precisam ser do mesmo tamanho.
Você pode visualizar assim:
Neste exemplo, os vetores de previsões e rótulos contêm três valores, o que signi�ca que ntem um
valor de três. Depois de realizarmos as subtrações, os valores no vetor são elevados ao quadrado. Em
seguida, o NumPy soma os valores e seu resultado é o valor do erro para essa previsão e uma
pontuação para a qualidade do modelo.
Como salvar e carregar objetos NumPy 
Esta seção abrange np.save , np.savez, np.savetxt, np.load,np.loadtxt
Em algum momento, você desejará salvar seus arrays em disco e carregá-los de volta sem precisar
executar novamente o código. Felizmente, existem várias maneiras de salvar e carregar objetos com o
NumPy. Os objetos ndarray podem ser salvos e carregados a partir dos arquivos de disco loadtxte
savetxtfunções que lidam com arquivos de texto normais loade savefunções que lidam com arquivos
binários NumPy com uma extensão de arquivo .npy e uma savezfunção que lida com arquivos NumPy
com uma extensão de arquivo .npz .
Os .npy e .npz arquivos armazenar dados, forma, dtipo, e outras informações necessárias para
reconstruir o ndarray de uma forma que permite que a matriz ser corretamente recuperado, mesmo
quando o arquivo estiver em outra máquina com arquitetura diferente.
Se você deseja armazenar um único objeto ndarray, armazene-o como um arquivo .npy usando
np.save. Se você quiser armazenar mais de um objeto ndarray em um único arquivo, salve-o como
um arquivo .npz usando np.savez. Você também pode salvar vários arrays em um único arquivo no
formato npz compactado com extensão savez_compressed.
É fácil salvar e carregar e array com arquivos np.save(). Apenas certi�que-se de especi�car a matriz
que deseja salvar e um nome de arquivo. Por exemplo, se você criar esta matriz:
>>> a = np.array([1, 2, 3, 4, 5, 6]) 
Você pode salvá-lo como “�lename.npy” com:
>>> np.save('filename', a) 
Você pode usar np.load()para reconstruir sua matriz.
>>> b = np.load('filename.npy') 
https://numpy.org/doc/stable/reference/generated/numpy.savez_compressed.html#numpy.savez_compressed
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 26/29
Se você quiser veri�car sua matriz, você pode executar::
>>> print(b) 
[1 2 3 4 5 6] 
Você pode salvar um array NumPy como um arquivo de texto simples como um arquivo .csv ou .txt
com np.savetxt.
Por exemplo, se você criar esta matriz:
>>> csv_arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) 
Você pode salvá-lo facilmente como um arquivo .csv com o nome “new_�le.csv” assim:
>>> np.savetxt('new_file.csv', csv_arr) 
Você pode carregar rápida e facilmente seu arquivo de texto salvo usando loadtxt():
>>> np.loadtxt('new_file.csv') 
array([1., 2., 3., 4., 5., 6., 7., 8.]) 
As funções savetxt()e loadtxt()aceitam parâmetros opcionais adicionais, como cabeçalho, rodapé
e delimitador. Embora os arquivos de texto possam ser mais fáceis de compartilhar, os arquivos .npy e
.npz são menores e mais rápidos de ler. Se você precisar de um tratamento mais so�sticado do seu
arquivo de texto (por exemplo, se precisar trabalhar com linhas que contenham valores ausentes),
convém usar a genfromtxt função.
Com savetxt, você pode especi�car cabeçalhos, rodapés, comentários e muito mais.
Saiba mais sobre rotinas de entrada e saída aqui .
Importando e exportando um CSV 
É simples de ler em um CSV que contém informações existentes. A melhor e mais fácil maneira de
fazer isso é usar o Pandas .
>>> import pandas as pd 
 
>>> # If all of your columns are the same type: 
>>> x = pd.read_csv('music.csv', header=0).values 
>>> print(x) 
[['Billie Holiday' 'Jazz' 1300000 27000000] 
 ['Jimmie Hendrix' 'Rock' 2700000 70000000] 
 ['Miles Davis' 'Jazz' 1500000 48000000] 
 ['SIA' 'Pop' 2000000 74000000]] 
 
>>> # You can also simply select the columns you need: 
>>> x = pd.read_csv('music.csv', usecols=['Artist', 'Plays']).values 
>>> print(x) 
[['Billie Holiday' 27000000] 
 ['Jimmie Hendrix' 70000000] 
 ['Miles Davis' 48000000] 
 ['SIA' 74000000]] 
https://numpy.org/doc/stable/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt
https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html#numpy.savetxt
https://numpy.org/doc/stable/reference/routines.io.html#routines-io
https://pandas.pydata.org/
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 27/29
É simples usar o Pandas para exportar sua matriz também. Se você é novo no NumPy, você pode
querer criar um dataframe do Pandas a partir dos valores em sua matriz e, em seguida, gravar o
quadro de dados em um arquivo CSV com o Pandas.
Se você criou este array “a”
>>> a = np.array([[-2.58289208, 0.43014843, -1.24082018, 1.59572603], 
... [ 0.99027828, 1.17150989, 0.94125714, -0.14692469], 
... [ 0.76989341, 0.81299683, -0.95068423, 0.11769564], 
... [ 0.20484034, 0.34784527, 1.96979195, 0.51992837]]) 
Você pode criar um dataframe Pandas
>>> df = pd.DataFrame(a) 
>>> print(df) 
 0 1 2 3 
0 -2.582892 0.430148 -1.240820 1.595726 
1 0.990278 1.171510 0.941257 -0.146925 
2 0.769893 0.812997 -0.950684 0.117696 
3 0.204840 0.347845 1.969792 0.519928 
Você pode salvar facilmente seu dataframe com:
>>> df.to_csv('pd.csv') 
E leia seu CSV com:
>>> data = pd.read_csv('pd.csv') 
Você também pode salvar seu array com o savetxtmétodo NumPy .
>>> np.savetxt('np.csv', a, fmt='%.2f', delimiter=',', header='1, 2, 3, 4') 
Se você estiver usando a linha de comando, poderá ler seu CSV salvo a qualquer momento com um
comando como:
$ cat np.csv 
# 1, 2, 3, 4 
-2.58,0.43,-1.24,1.60 
0.99,1.17,0.94,-0.15 
0.77,0.81,-0.95,0.12 
0.20,0.35,1.97,0.52 
Ou você pode abrir o arquivo a qualquer momento com um editor de texto!
Se você estiver interessado em aprender mais sobre o Pandas, dê uma olhada na documentação
o�cial do Pandas . Saiba como instalar o Pandas com as informações o�ciais de instalação do Pandas .
https://pandas.pydata.org/index.html
https://pandas.pydata.org/pandas-docs/stable/install.html
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 28/29
Plotando arrays com Matplotlib 
Se você precisar gerar um grá�co para seus valores, é muito simples com Matplotlib .
Por exemplo, você pode ter um array como este:
>>> a = np.array([2, 1, 5, 7, 4, 6, 8, 14, 10, 9, 18, 20, 22]) 
Se você já tem o Matplotlib instalado, você pode importá-lo com:
>>> import matplotlib.pyplot as plt 
 
# If you're using Jupyter Notebook, you may also want to run the following 
# line of code to display your code in the notebook: 
 
%matplotlib inline 
Tudo o que você precisa fazer para traçar seus valores é executar:
>>> plt.plot(a) 
 
# If you are running from a command line, you may need to do this: 
# >>> plt.show() 
Por exemplo, você pode plotar uma matriz 1D como esta:
>>> x = np.linspace(0, 5, 20) 
>>> y = np.linspace(0, 10, 20) 
>>> plt.plot(x, y, 'purple') # line 
>>> plt.plot(x,y, 'o') # dots 
Com o Matplotlib, você tem acesso a um enorme número de opções de visualização.
https://matplotlib.org/
13/01/2022 06:32 NumPy: the absolute basics for beginners — NumPy v1.22 Manual
https://numpy.org/doc/stable/user/absolute_beginners.html 29/29
© Copyright 2008-2021, A comunidade NumPy.
Criado usando Sphinx 4.2.0.

Anterior
Início rápido do NumPy
Next
Fundamentos do NumPy

>>> fig = plt.figure() 
>>> ax = fig.add_subplot(projection='3d') 
>>> X = np.arange(-5, 5, 0.15) 
>>> Y = np.arange(-5, 5, 0.15) 
>>> X, Y = np.meshgrid(X, Y) 
>>> R = np.sqrt(X**2 + Y**2) 
>>> Z = np.sin(R) 
 
>>> ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis') 
Para ler mais sobre o Matplotlib e o que ele pode fazer, dê uma olhada na documentação o�cial . Para
obter instruções sobre como instalar o Matplotlib, consulte a seção o�cial de instalação .
Créditos da imagem: Jay Alammar http://jalammar.github.io/
https://www.sphinx-doc.org/
https://numpy.org/doc/stable/user/quickstart.html
https://numpy.org/doc/stable/user/basics.html
https://matplotlib.org/
https://matplotlib.org/users/installing.html
https://matplotlib.org/users/installing.html

Continue navegando