Numpy: um introdução#
Numpy é, senão a mais, uma das mais populares bibliotecas para computação numérica na comunidade do Python. De tal forma que muitas outras bibliotecas desse segmento, quando não impletam suas funcionalidades usando o próprio Numpy como base, garantem com aquela um certo grau de compatibilidade ou suporte.
A biblioteca implementa uma extrutura de dados (a ndarray) homogênea (os dados são do mesmo tipo), cujos elementos podem ser acessados por índices inteiros. Comparadas as estruturas como listas e tuplas padrões do Python, a ndarray oferce vantagens para computação numérica, otimizando recursos como memória e poder de processamento. Ela também apresenta um recuso chamado “vetorização” (vecotirzation), que permite realizar operações com cada elemento do arranjo, de forma simples, reduzindo a necessidade do uso de loops (for, while).
Para entender melhor, vamos a algumas práticas com a biblioteca, començando pela tradicional importação dos módulos e escrita de algumas rotinas básicas.
import numpy as np # Importação do Numpy. "as np" cria um "alias" (apelido) para "numpy"
x = np.array([1, 2, 3])
y = np.arange(0, 2, .5)
z = np.linspace(0, 10, 6)
x, y, z
(array([1, 2, 3]),
array([0. , 0.5, 1. , 1.5]),
array([ 0., 2., 4., 6., 8., 10.]))
Os métodos array, arange e linspace retornam arranjos (arrays) numéricos, seguido diferentes processos de criação.
array retorna um obeto array numpy, contando os valores passados na lista.
arange retornar um arranjo contendo valores no intervalo definido pelo primeito e último parâmetro, com espaçamento dado pelo terceiro parâmetro.
linspace funciona quase como arange, mas o terceiro parâmetro expressa a quantidade de elementos do intervalo, em vez do espaçamento.
mat = np.array([[1., .2, 5], [0, -3, -1], [.2, np.pi, 0]])
mat
array([[ 1. , 0.2 , 5. ],
[ 0. , -3. , -1. ],
[ 0.2 , 3.14159265, 0. ]])
np.linalg.det(mat)
6.101592653589793
Acima, em sequência, declaramos uma matriz quadrada (mat), imprimimos em tela e calculamos seu determinante, usado a função det do pacote linalg.
Continua… WDG - 2024/01/19