NumPy 101: Aprenda NumPy em 10 minutos

Numpy é uma biblioteca Python popular para computação científica e análise de dados. Ele fornece um poderoso objeto de matriz, juntamente com muitas funções e métodos úteis para manipular e processar dados numéricos. Nesta postagem do blog, compartilharei algumas das operações numpy essenciais que podem ajudá-lo a escrever um código mais rápido e limpo. Seja você um iniciante ou um especialista, espero que encontre algo útil nesta folha de dicas numpy.

Instalação

Se você não possui o numpy, primeiro precisa instalá-lo. Você pode instalá-lo em dois dias:

Usando pip

pip install numpy

Primeiro, ative seu ambiente anaconda e use o seguinte comando:

conda install -c anaconda numpy

Antes de fazer qualquer operação usando numpy, precisamos importá-lo.

import numpy as np

Vamos começar do básico e aprender como criar valores escalares da classe numpy.

# int type

python_int = 2
numpy_int = np.int32(2)
print(type(python_int)) # ---> <class 'int'>
print(type(numpy_int)) # ---> <class 'numpy.int32'>

# float type

python_float = 2.5
numpy_float = np.float32(2.5)
print(type(python_float)) # ---> <class 'float'>
print(type(numpy_float)) # ---> <class 'numpy.float32'>

Agora, é hora de passar para Arrays ou Lists.

Matriz 1-D

Vamos agora criar um array 1-D usando o array()método numpy.

# creating an 1-D array of int type

one_d_array_int = np.array([1,2,3]) 
print(one_d_array_int) # ---> output : [1 2 3]

# creating an 1-D array of float type

one_d_array_float = np.array([1.5,2.5,3.5])
print(one_d_array_float) # ---> output : [1.5 2.5 3.5]

Vamos agora criar um array 2-D usando o array()método numpy.

# 2-D int array

two_d_array_int = np.array([
                [1,2,3],
                [4,5,6],
                [7,8,9]
               ])
print(two_d_array_int) # ---> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 2-D float array

two_d_array_float= np.array([
                [1.1,2.1,3.0],
                [4.1,5.1,6.1],
                [7.1,8.1,9.1]
               ])
print(two_d_array_float) # ---> [[1.1, 2.1, 3.0], [4.1, 5.1, 6.1], [7.1, 8.1, 9.1]]

Agora, vamos aprender como você obtém a dimensão de qualquer array.

# If the array is a 1-D array, then it'll return 1
print(one_d_array_int.ndim) # ---> output : 1

# If the array is a 2-D array, then it'l return 2
print(two_d_array_int.ndim) # ---> output : 2


print(one_d_array_int.shape) # ---> output : (3,)


print(two_d_array_int.shape) # ---> output : (3, 3)

Obter o tipo de dados de uma matriz

print(one_d_array_int.dtype) # ---> output : dtype('int32')

Manipulando Elementos de um Array

Vamos criar um novo array e então vamos realizar operações neste novo array.

a = np.array([[1,2,3,4,5,6,7],[8,9,10,11,12,13,14]])
print(a) # ---> output : [[ 1  2  3  4  5  6  7]
#                         [ 8  9 10 11 12 13 14]]

Digamos que queremos acessar o terceiro elemento das primeiras linhas.

# accessing 1st row's 3rd element
print(a[0,2]) # ---> output : 3

Lembre-se, numpy também segue a indexação baseada em 0 e devido a isso, se quisermos obter a primeira linha, precisamos escrever 0 e não 1 e o mesmo vale para o valor da coluna se precisarmos do terceiro elemento, então escreveremos 2 e não 3.

Acesse apenas uma linha ou coluna específica

# accessing only the first row
print(a[0,:]) # ---> output : [1 2 3 4 5 6 7]

# accessing only the second column
print(a[:,1]) # ---> output : [2 9]

# [startindex:endindex:stepsize]
print(a[0, 1:-1:2]) # ---> output : [2 4 6]

Alterando o valor do elemento

a[0,2] = 99
print(a) # ---> output : [[ 1  2 99  4  5  6  7]
#                         [ 8  9 10 11 12 13 14]]

Matrizes especiais em Numpy

matriz zero

# creating a zero matrix of shape(2,3)

print(np.zeros((2,3))) # ---> output : [[0. 0. 0.]
 #                                      [0. 0. 0.]
 #                                      [0. 0. 0.]]

Uma Matriz

# All 1s matrix
print(np.ones((3,2,2))) # ---> output : [[[1. 1.]
#                                        [1. 1.]]
#
#                                        [[1. 1.]
#                                         [1. 1.]]
#                                      
#                                        [[1. 1.]
#                                         [1. 1.]]]

# creating ones matrix int type
print(np.ones((3,2,2)), dtype='int32') # ---> output : [[[1 1]
#                                        [1 1]]
#
#                                        [[1 1]
#                                         [1 1]]
#                                      
#                                        [[1 1]
#                                         [1 1]]]

Matriz Aleatória

Se você deseja ter uma matriz com valores aleatórios de uma forma específica, pode usar np.random.rand()o método.

print(np.random.rand(3,3)) # ---> output : [[0.10671372 0.31133182 0.56572354]
#                                           [0.34792672 0.88867917 0.25310353]
#                                           [0.70052117 0.53243035 0.67948057]]

Se você deseja ter uma matriz com valores int aleatórios de uma forma específica, pode usar np.random.randint()o método.

# np.random.randint(start_value,end_value,size)

print(np.random.randint(-1,5, size=(3,3))) # ---> output : [[0 -1 2]
#                                                           [4 2 1]
#                                                           [4 4 0]]

end_valueé exclusivo é por isso que não há 5 na matriz de saída.

Se você não mencionar o start_value, o valor inicial padrão seria 0. Você deve mencionar o end_value.

Matriz de identidade

Se você deseja criar uma matriz de identidade, pode usar np.identity()o método.

print(np.identity(3)) # ---> output : [[1. 0. 0.]
#                                      [0. 1. 0.]
#                                      [0. 0. 1.]]

matriz de transposição

a = np.random.randint(-1,5, size = (2,3)) # creating a random int array
print(a)                                  # output : [[ 2 -1  1]
                                          #           [ 0  1  1]]

print(a.T)                                # output : [[ 2  0]
                                          #           [-1  1]
                                          #           [ 1  1]]

Se você quiser alterar a forma da matriz, pode usar reshape()o método.

a = np.random.randint(-1,5, size = (2,3)) # creating a random int array
print(a)                                  # output : [[ 2 -1  1]
                                          #           [ 0  1  1]]

print(a.reshape(3,2))                     # output : [[ 2  0]
                                          #           [-1  1]
                                          #           [ 1  1]]

print(a.reshape(1,6))                     # output : [[1 2 3 2 2 2]]

Preencha com qualquer número

Se você deseja que um aray seja preenchido com um valor específico, pode usar np.full()o método.

print(np.full((3,3), 14)) # ---> output : [[14 14 14]
#                                          [14 14 14]
#                                          [14 14 14]]

Se você deseja ter uma matriz com um valor específico e deseja que ela tenha a mesma forma de outra matriz, pode usar o np.full_like()método.

# Any other number (full_like)
print(np.full_like(a, 4)) # ---> output : [[4 4 4 4 4 4 4]
#                                          [4 4 4 4 4 4 4]]

Copiar matriz

a = [1,2,3]             # created an array a
b = [10,20,30]          # created an array b
print(a)                # output : [1 2 3]
a = b                   # I'll explain it below
b[1] = 200              # changed b's 2nd element's value to 200
print(a)                # output : [10 200 30] HOW??????

Aqui, os valores de bnão foram copiados para a, em vez disso a, começam a apontar para bo qual, por sua vez, altera os valores de a, mas o problema é que sempre que você alterar algo no bmesmo, será refletido em a.

Matrizes de Empilhamento

Se você deseja empilhar vários arrays vertical ou horizontalmente, pode usar vstack()método ou hstack()método, respectivamente.

# Vertically stacking vectors
v1 = np.array([1,2,3,4])                # created array v1
v2 = np.array([5,6,7,8])                # create array v2

np.vstack([v1,v2,v1,v2])                # output : [[1 2 3 4]
                                        #           [5 6 7 8]
                                        #           [1 2 3 4]
                                        #           [5 6 7 8]]
print(np.hstack([v1,v2]))               # output : [1 2 3 4 5 6 7 8]

a = np.array([1, 2, 3])
print(a.sum())                               # sum of all values of a
print(a.max())                               # max of all elements of a
print(a.mean())                              # return mean of a
print(np.median(a))                          # return median of a
print(np.std(a))                             # return standard deviation of a

Isso conclui nosso blogpost numpy cheatsheet. Esperamos que você tenha achado útil e aprendido alguns novos truques para trabalhar com arrays e matrizes em Python. Numpy é uma biblioteca poderosa e versátil que pode ajudá-lo a realizar vários cálculos numéricos e tarefas de análise de dados. Se você quiser aprender mais sobre numpy, pode conferir a documentação oficial ou alguns dos tutoriais e cursos online disponíveis. Obrigado por ler e codificação feliz!

Suggested posts

Repensando a mídia: as cinco verdades de McChesney e o futuro das comunicações

No mundo hiperconectado de hoje, os sistemas de mídia desempenham um papel fundamental na formação da opinião pública e, consequentemente, na tomada de decisões democráticas. Em sua análise profunda da economia política da comunicação, o estudioso Robert McChesney desafia a sabedoria convencional e apresenta o que chama de “cinco verdades” sobre a mídia.

BARD VS ChatGPT: Testando problemas analíticos

Diferenças, semelhanças e testes de ambos os modelos de linguagem e comparação

BARD VS ChatGPT: Testando problemas analíticos

PODEMOS CONECTAR:| LINKEDIN | TWITTER | MÉDIO | SUBPILHA | No dia 10 de maio, o concorrente mais badalado e forte do Google para ChatGPT, BARD, veio ao ar na Índia. Meu fascínio não me deixou parar de comparar Bard com ChatGPT, e aqui estão algumas comparações impressionantes.

Related posts

Repensando a mídia: as cinco verdades de McChesney e o futuro das comunicações

No mundo hiperconectado de hoje, os sistemas de mídia desempenham um papel fundamental na formação da opinião pública e, consequentemente, na tomada de decisões democráticas. Em sua análise profunda da economia política da comunicação, o estudioso Robert McChesney desafia a sabedoria convencional e apresenta o que chama de “cinco verdades” sobre a mídia.

O que torna um podcast influente?

O que torna um podcast influente?

Na semana passada, notei um comunicado de imprensa, enviado via PressGazette (um site de notícias da mídia britânica). O artigo anunciava que a Acast, a empresa de publicidade e hospedagem de podcast Scandi, lideraria um consórcio de "provavelmente os editores mais influentes" em podcasting.

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

No atual cenário de negócios em rápida evolução, o conceito de trabalho híbrido e remoto ganhou um impulso sem precedentes. À medida que as empresas continuam a se adaptar às mudanças nas necessidades e expectativas de seus funcionários, especialistas de várias áreas se reuniram para discutir os benefícios, os desafios e o futuro dessa forma transformadora de trabalhar.

Rede de TV Twitter

Rede de TV Twitter

O que é velho agora é novo de novo e o que costumava ser a coisa brilhante e brilhante agora parece opaco. Não estou falando de jeans JNCO fazendo um retorno entre os garotos legais do centro da cidade junto com outras modas do final dos anos 1990.