Operações com Arrays NumPy

NumPyBeginner
Pratique Agora

Introdução

NumPy é uma biblioteca Python utilizada para computação numérica. Ela é projetada para trabalhar com arrays e matrizes, tornando-a uma ferramenta poderosa para computação científica. Neste laboratório, você aprenderá os três tópicos a seguir relacionados às Operações de Array NumPy:

  1. Operações Matemáticas
  2. Broadcasting (Difusão)
  3. Funções Universais (Universal Functions)
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 98%. Recebeu uma taxa de avaliações positivas de 97% dos estudantes.

Operações Matemáticas

NumPy fornece uma variedade de operações matemáticas para arrays. Essas operações podem ser realizadas em um ou mais arrays.

Abrir o Shell Python

Abra o shell Python digitando o seguinte comando no terminal.

python3

Importar NumPy

NumPy já está instalado, você pode importá-lo em seu código Python:

import numpy as np

Operações Element-wise (Element-wise Operations)

Operações element-wise são operações realizadas em cada elemento do array.

Vamos criar dois arrays e realizar algumas operações element-wise:

## Criando dois arrays
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

## Adicionando dois arrays
print("Adicionando dois arrays: ", arr1 + arr2)

## Subtraindo dois arrays
print("Subtraindo dois arrays: ", arr1 - arr2)

## Multiplicando dois arrays
print("Multiplicando dois arrays: ", arr1 * arr2)

## Dividindo dois arrays
print("Dividindo dois arrays: ", arr1 / arr2)

## Encontrando o resto após a divisão de dois arrays
print("Módulo de dois arrays: ", arr1 % arr2)

## Elevando elementos de um array a uma potência
print("Elevando um array a uma potência: ", arr1 ** 2)

Saída:

Adding two arrays:  [ 6  8 10 12]
Subtracting two arrays:  [-4 -4 -4 -4]
Multiplying two arrays:  [ 5 12 21 32]
Dividing two arrays:  [0.2        0.33333333 0.42857143 0.5       ]
Modulo of two arrays:  [1 2 3 4]
Raising an array to a power:  [ 1  4  9 16]

Operações Array-wise (Array-wise Operations)

Operações array-wise são operações realizadas em todo o array.

Vamos criar um array e realizar algumas operações array-wise:

## Criando um array
arr = np.array([1, 2, 3, 4])

## Encontrando a soma de todos os elementos no array
print("Soma do array: ", np.sum(arr))

## Encontrando o produto de todos os elementos no array
print("Produto do array: ", np.prod(arr))

## Encontrando o elemento mínimo no array
print("Elemento mínimo no array: ", np.min(arr))

## Encontrando o elemento máximo no array
print("Elemento máximo no array: ", np.max(arr))

## Encontrando a média de todos os elementos no array
print("Média do array: ", np.mean(arr))

## Encontrando o desvio padrão de todos os elementos no array
print("Desvio padrão do array: ", np.std(arr))

Saída:

Sum of array:  10
Product of array:  24
Minimum element in array:  1
Maximum element in array:  4
Average of array:  2.5
Standard deviation of array:  1.118033988749895

Broadcasting (Difusão)

Broadcasting (Difusão) é um recurso do NumPy que permite operações element-wise (elemento a elemento) entre arrays com diferentes formatos (shapes). Broadcasting (Difusão) é especialmente útil ao trabalhar com arrays de diferentes dimensões.

Vamos criar um array e realizar algumas operações de broadcasting (difusão):

## Criando dois arrays de diferentes formatos
array1 = np.array([1, 2, 3])
array2 = np.array([[4, 5, 6], [7, 8, 9]])

## Broadcasting do array menor para o array maior
print("Adicionando dois arrays usando broadcasting: ", array1 + array2)

print("Subtraindo dois arrays usando broadcasting: ", array1 - array2)

print("Multiplicando dois arrays usando broadcasting: ", array1 * array2)

print("Dividindo dois arrays usando broadcasting: ", array1 / array2)

Saída:

Adding two arrays using broadcasting:  [[ 5  7  9]
                                         [ 8 10 12]]

Subtracting two arrays using broadcasting:  [[-3 -3 -3]
                                              [-6 -6 -6]]

Multiplying two arrays using broadcasting:  [[ 4 10 18]
                                              [7 16 27]]

Dividing two arrays using broadcasting:  [[0.25       0.4        0.5       ]
                                           [0.14285714 0.25       0.33333333]]

No código acima, criamos dois arrays, array1 com o formato (3,) e array2 com o formato (2,3). Realizamos operações element-wise (elemento a elemento) entre array1 e array2, graças ao recurso de broadcasting (difusão) no NumPy. O array menor, array1, é difundido (broadcasted) para o array maior, array2, para realizar operações element-wise (elemento a elemento). Broadcasting (Difusão) torna possível realizar operações em arrays com diferentes formatos.

Funções Universais

Funções universais, ou ufuncs, são funções que operam em arrays de forma element-wise (elemento a elemento). Elas fornecem operações rápidas e eficientes em arrays.

Vamos criar um array e realizar algumas ufuncs:

## Criando um array
arr = np.array([1, 2, 3, 4])

## Encontrando a raiz quadrada de cada elemento no array
print("Raiz quadrada do array: ", np.sqrt(arr))

## Encontrando a exponencial de cada elemento no array
print("Exponencial do array: ", np.exp(arr))

## Encontrando o seno de cada elemento no array
print("Seno do array: ", np.sin(arr))

## Encontrando o cosseno de cada elemento no array
print("Cosseno do array: ", np.cos(arr))

## Encontrando o logaritmo natural de cada elemento no array
print("Logaritmo natural do array: ", np.log(arr))

Saída:

Square root of array:  [1.         1.41421356 1.73205081 2.        ]
Exponential of array:  [ 2.71828183  7.3890561  20.08553692 54.59815003]
Sine of array:  [ 0.84147098  0.90929743  0.14112001 -0.7568025 ]
Cosine of array:  [ 0.54030231 -0.41614684 -0.9899925  -0.65364362]
Natural logarithm of array:  [0.         0.69314718 1.09861229 1.38629436]

Resumo

Parabéns! Você agora aprendeu sobre as Operações de Array NumPy, incluindo Operações Matemáticas, Broadcasting (Difusão) e Funções Universais. Com este conhecimento, você agora pode realizar uma ampla gama de tarefas de computação numérica com Python.