Introdução à Biblioteca NumPy em Python

O que é a biblioteca NumPy?

O NumPy é uma biblioteca em Python para computação científica, especialmente para cálculos numéricos em larga escala e manipulação de arrays multidimensionais. O nome NumPy é uma abreviação de “Numeric Python” (Python Numérico).

O NumPy oferece uma ampla gama de funções e operações matemáticas, incluindo funções de álgebra linear, transformadas de Fourier, geração de números aleatórios, estatísticas e muito mais.

O módulo também inclui ferramentas para integração com outras linguagens de programação, como C, C++ e Fortran.

Uma das principais vantagens do NumPy é sua capacidade de lidar com grandes quantidades de dados de maneira rápida e eficiente, graças à implementação de operações vetorizadas. Essas operações permitem que cálculos em grandes conjuntos de dados sejam executados de forma eficiente e com menos código.

O NumPy é amplamente utilizado em áreas como ciência de dados, aprendizado de máquina, visão computacional, física, matemática, engenharia e muitas outras áreas que envolvem cálculos numéricos intensivos.

Site oficial do projeto NumPy: https://numpy.org/

O que é um array em NumPy?

Em NumPy, um array é um tipo de objeto que representa uma coleção de elementos homogêneos (ou seja, do mesmo tipo) organizados em uma ou mais dimensões. Esses arrays podem ser de diferentes formas (ou seja, números de dimensões e tamanhos), e cada elemento em um array é indexado por uma tupla de inteiros não negativos.

Por exemplo:

Array de uma dimensão:

1 5 9 3 2 4 2 1 6 5 7 0 8

Array de duas dimensões (três linhas por quatro colunas, 3×4):

1 5 9 3
2 4 2 1
6 5 7 0

Um array em NumPy é semelhante a uma estrutura de lista ou listas encadeadas em Python, mas oferece várias vantagens em relação às listas, incluindo:

  • Armazenamento eficiente de dados em memória
  • Operações matemáticas e de álgebra linear eficientes em arrays multidimensionais
  • Índices e fatiamento mais rápidos para acessar elementos
  • Suporte para broadcasting (transmissão) para realizar operações em arrays com diferentes formas

Em suma, os arrays em NumPy são usados para representar dados em muitas áreas diferentes, incluindo processamento de imagens, aprendizado de máquina e ciência de dados em geral.

Para criar arrays em NumPy empregamos a função numpy.array(), que pode aceitar como entrada uma lista, tupla ou outro objeto do tipo array. Veremos 10 exemplos de uso da biblioteca Numpy a seguir.

Tutorial básico de NumPy

1. Como instalar o NumPy

Antes de começar a usar o NumPy, precisamos instalá-lo em seu sistema. Podemos instalar o pacote usando o gerenciador de pacotes pip no terminal ou prompt de comando:

pip install numpy

Se estiver usando o gerenciador conda:

conda install numpy

2. Importar o NumPy

Depois de instalar o NumPy, precisamos importá-lo no script Python para poder usar a biblioteca e suas funções:

import numpy as np

3. Criação de arrays

O NumPy é usado principalmente para trabalhar com arrays multidimensionais. Podemos criar um array NumPy usando a função array():

arr = np.array([1, 2, 3, 4, 5])
print(arr)

Esse código cria um array NumPy unidimensional com os valores [1, 2, 3, 4, 5].

Também podemos criar um array NumPy bidimensional passando uma lista de listas para a função array():

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)

Desta forma criamos um array NumPy bidimensional com os valores:

[[1 2 3]
 [4 5 6]]

4. Acessar elementos de um array

Podemos acessar os elementos de um array NumPy usando seus números de índice, que iniciam em 0:

arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) # 1
print(arr[1]) # 2

Também podemos acessar elementos de um array bidimensional usando índices de linha e coluna:

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 0]) # 1
print(arr[0, 1]) # 2
print(arr[1, 0]) # 4

5. Operações em arrays

O NumPy permite realizar operações em arrays de forma rápida e eficiente. Por exemplo, podemos adicionar dois arrays NumPy da seguinte maneira:

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = arr1 + arr2
print(arr3) # [5 7 9]

O que ocorre se os arrays tiverem tamanhos (formatos) diferentes, como no exemplo a seguir?

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6, 7])
arr3 = arr1 + arr2

print(arr3)

Neste caso, será retornado o erro “ValueError: operands could not be broadcast together with shapes (3,) (4,)“.

Isso significa que os arrays possuem formatos distintos, e por isso não é possível transmitir pares de valores (operandos) para realizar a operação aritmética.

6. Funções matemáticas

O NumPy também oferece muitas funções matemáticas, como por exemplo a função sqrt() para calcular a raiz quadrada de um array, exp() para calcular a exponencial de um array e sin() para calcular o seno de um array:

arr = np.array([1, 2, 3])
print(np.sqrt(arr)) # [1. 1.41421356 1.73205081]
print(np.exp(arr)) # [ 2.71828183 7.3890561 20.08553692]
print(np.sin(arr)) # [0.84147098 0.90929743 0.14112001]

7. Reshape de arrays

Podemos alterar a forma de um array usando a função reshape():

arr = np.array([1, 2, 3, 4, 5, 6])
novo_arr = arr.reshape(2, 3)
print(novo_arr)

Esse código irá criar um novo array bidimensional de formato 2 x 3, a partir de um array unidimensional, com os valores:

[[1 2 3]
 [4 5 6]]

8. Indexação booleana

Você pode usar indexação booleana para selecionar elementos de um array com base em uma condição:

arr = np.array([1, 2, 3, 4, 5])
bool_arr = arr > 2
print(bool_arr) # [False False True True True]
novo_arr = arr[bool_arr]
print(novo_arr) # [3 4 5]

Isso criará um array booleano com o valor True onde o elemento é maior que 2 e False onde o elemento é menor ou igual a 2. Em seguida, um novo array é criado com base no array booleano, que contém apenas os elementos em que o valor é True.

9. Ordenação de arrays

O NumPy também oferece funções para ordenação de arrays:

arr = np.array([3, 2, 1, 5, 4])
novo_arr = np.sort(arr)
print(novo_arr) # [1 2 3 4 5]

Isso criará um novo array com os valores do array original ordenados em ordem crescente.

10. Operações de matriz

O NumPy também é usado para álgebra linear e pode realizar operações de matriz, como multiplicação de matriz e inversão de matriz:

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
novo_arr = np.dot(arr1, arr2)
print(novo_arr)

Neste exemplo é efetuada a multiplicação de matriz entre arr1 e arr2 e criado um novo array:

[[19 22]
 [43 50]]

Neste artigo introduzi de forma básica a biblioteca NumPy para iniciantes. O NumPy oferece muitos outros recursos poderosos para trabalhar com arrays multidimensionais e realizar cálculos numéricos eficientes em Python. Nos próximos tutoriais vamos explorar mais a fundo esses recursos e funções da biblioteca.

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*