Introdução
Este laboratório abordará alguns dos recursos avançados do NumPy, incluindo álgebra linear, geração de números aleatórios e arrays mascarados (masked arrays).
Este laboratório abordará alguns dos recursos avançados do NumPy, incluindo álgebra linear, geração de números aleatórios e arrays mascarados (masked arrays).
NumPy possui um conjunto abrangente de funções para operações de álgebra linear. Aqui estão alguns exemplos:
Abra o shell Python digitando o seguinte comando no terminal.
python3
O produto escalar de dois arrays pode ser calculado usando a função np.dot(). O produto escalar de dois arrays A e B é definido como a soma do produto dos elementos correspondentes de A e B.
import numpy as np
## criar dois arrays
a = np.array([1, 2])
b = np.array([3, 4])
## calcular o produto escalar
dot_product = np.dot(a, b)
print(dot_product) ## Output: 11
A multiplicação de matrizes pode ser realizada usando o operador @ ou a função np.matmul().
Por favor, leia os seguintes exemplos com atenção.
## criar duas matrizes
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## multiplicação de matrizes
C = A @ B
print(C) ## Output: [[19 22], [43 50]]
Você também pode obter os resultados de outra forma.
## criar duas matrizes
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## multiplicação de matrizes
C = np.matmul(A,B)
print(C) ## Output: [[19 22], [43 50]]
O determinante e a inversa de uma matriz podem ser calculados usando as funções np.linalg.det() e np.linalg.inv(), respectivamente.
## criar uma matriz
A = np.array([[1, 2], [3, 4]])
## calcular determinante e inversa
det_A = np.linalg.det(A)
inv_A = np.linalg.inv(A)
print(det_A) ## Output: -2.0
print(inv_A) ## Output: [[-2. 1. ], [ 1.5 -0.5]]
Agora é sua vez de construir dois arrays e usar a função np.dot() para calcular o produto escalar. Use @ ou np.matmul() para calcular a multiplicação de matrizes e use as funções np.linalg.det() e np.linalg.inv() para calcular o determinante da matriz e a matriz inversa.
NumPy fornece várias funções para gerar números aleatórios. Aqui estão alguns exemplos:
A função np.random.rand() pode ser usada para gerar números aleatórios entre 0 e 1.
## gerar uma matriz 2x2 de números aleatórios
a = np.random.rand(2, 2)
print(a) ## Output: [[0.43584547 0.37752558], [0.08936734 0.65526767]]
A função np.random.randint() pode ser usada para gerar inteiros aleatórios entre dois números especificados.
## gerar um array de inteiros aleatórios entre 1 e 10
a = np.random.randint(1, 10, size=(3, 3))
print(a) ## Output: [[8 7 3], [3 3 7], [8 8 7]]
A função np.random.normal() pode ser usada para gerar números de uma distribuição normal.
## gerar um array de números de uma distribuição normal
a = np.random.normal(0, 1, size=(2, 2))
print(a) ## Output: [[ 1.28418331 -0.90564647], [-0.76477896 1.69903421]]
Agora, por favor, siga as funções acima para completar a saída de número aleatório, inteiro aleatório e distribuição normal. Por favor, complete este exercício.
Arrays mascarados são arrays que possuem uma máscara anexada a eles. A máscara é um array de valores booleanos que indicam quais elementos do array devem ser mascarados (ocultos). NumPy fornece o módulo np.ma para trabalhar com arrays mascarados.
Um array mascarado pode ser criado usando a função np.ma.masked_array().
## criar um array com alguns valores mascarados
a = np.ma.masked_array([1, 2, 3, 4], mask=[True, False, False, True])
print(a) ## Output: [-- 2 3 --]
Uma máscara pode ser aplicada a um array usando a função np.ma.masked_where().
## criar um array
a = np.array([1, 2, 3, 4])
## criar uma máscara
mask = a > 2
## aplicar a máscara
b = np.ma.masked_where(mask, a)
print(b) ## Output: [1 2 -- --]
Arrays mascarados podem ser usados para lidar com valores inválidos, como NaNs (not a number - não é um número) ou infinitos.
## criar um array com alguns valores inválidos
a = np.array([1, np.nan, np.inf, 4])
## criar um array mascarado
b = np.ma.masked_invalid(a)
print(b) ## Output: [1.0 -- -- s4.0]
Agora, por favor, use o módulo np.ma fornecido pelo NumPy para completar a criação de um array mascarado. Ao mesmo tempo, use a função np.ma.masked_where() para aplicar a máscara ao array e, finalmente, use np.ma.masked_invalid() para lidar com valores inválidos. Por favor, complete este exercício.
Parabéns por completar este experimento!
Neste tutorial, cobrimos alguns dos tópicos avançados em NumPy, incluindo álgebra linear, geração de números aleatórios e arrays mascarados. Esses recursos são úteis para muitas aplicações, incluindo análise de dados e computação científica.
Por favor, continue trabalhando duro!