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:
- Operações Matemáticas
- Broadcasting (Difusão)
- Funções Universais (Universal Functions)
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.



