Criando Arrays com NumPy: Um Guia Detalhado

A função np.array é um pilar fundamental na biblioteca NumPy, servindo como a principal ferramenta para a criação de arrays multidimensionais (ndarrays). Este guia explora sua sintaxe, parâmetros, exemplos práticos e considerações importantes.

Sintaxe Básica

A assinatura da função é:

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

Parâmetros Detalhados:

  • object: A fonte dos dados. Pode ser uma lista Python, tupla, outro array NumPy, um gerador, entre outros.
  • dtype: (Opcional) Define o tipo de dado dos elementos do array (ex: np.int32, np.float64). Se omitido, o NumPy tentará inferir o tipo automaticamente.
  • copy: Por padrão é True, indicando que os dados de entrada devem ser copiados. Definir como False tenta evitar a cópia se os dados já estiverem em um formato compatível.
  • order: (Opcional) Especifica a ordem da memória: 'C' para ordem por linha (C-style), 'F' para ordem por coluna (Fortran-style), ou 'K' para manter a ordem original do objeto de entrada.
  • subok: Por padrão é False. Se True, permite que a função retorne subclasses de ndarray.
  • ndmin: Especifica o número mínimo de dimensões que o array resultante deve ter.

Exemplos de Uso

  1. Array Unidimensional a partir de uma Lista
import numpy as np

lista_simples = [5, 10, 15, 20]
array_unidim = np.array(lista_simples)
print(array_unidim)

Saída:

[ 5 10 15 20]

  1. Array Bidimensional a partir de Listas Aninhadas
lista_aninhada = [[1, 2, 3], [4, 5, 6]]
array_bidim = np.array(lista_aninhada)
print(array_bidim)

Saída:

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

  1. Especificando o Tipo de Dado
dados_inteiros = [10, 20, 30]
array_float = np.array(dados_inteiros, dtype=np.float32)
print(array_float)

Saída:

[10. 20. 30.]

  1. Garantindo Mínimo de Dimensões com ndmin
dados = [7, 8, 9]
array_3d = np.array(dados, ndmin=3)
print(array_3d)

Saída:

[[[7 8 9]]]

Diferenças Cruciais: Listas Python vs. Arrays NumPy

Característica Listas Python Arrays NumPy (ndarray)
Tipos de Elementos Podem misturar tipos Todos os elementos devem ter o mesmo tipo
Performance Operações lentas (loops) Operações rápidas (vetorizadas)
Uso de Memória Maior Menor (para tipos homogêneos)
Suporte Multidimensional Implícito (listas aninhadas) Nativo e eficiente
Operações Matemáticas Requer código explícito (loops, map) Suporte direto (+, -, *, /)

Operações Comuns

  1. Acessando Atributos do Array
matriz = np.array([[10, 20], [30, 40], [50, 60]])

print("Número de Dimensões:", matriz.ndim)
print("Formato (Shape):", matriz.shape)
print("Total de Elementos:", matriz.size)
print("Tipo de Dado:", matriz.dtype)

Saída:

Número de Dimensões: 2
Formato (Shape): (3, 2)
Total de Elementos: 6
Tipo de Dado: int64

  1. Fatiamento e Indexação
sequencia = np.arange(10) # Cria um array de 0 a 9
print(sequencia[3:7])    # Seleciona elementos do índice 3 até (mas não incluindo) o 7

Saída:

[3 4 5 6]

  1. Operações Aritméticas Vetorizadas
vetor_a = np.array([1, 2, 3])
vetor_b = np.array([4, 5, 6])

soma_elementos = vetor_a + vetor_b
multiplicacao_escalar = vetor_a * 10

print("Soma:", soma_elementos)
print("Multiplicação por Escalar:", multiplicacao_escalar)

Saída:

Soma: [5 7 9]
Multiplicação por Escalar: [10 20 30]

Pontos de Atenção

  • Consistência de Tipo: Um array NumPy exige que todos os seus elementos sejam do mesmo tipo. Se tipos diferentes forem fornecidos, o NumPy realizará uma coerção para um tipo mais genérico (ex: inteiros e floats resultarão em floats).
  • Eficiência de Memória: Arrays NumPy são significativamente mais eficientes em termos de uso de memória comparados às listas Python, especialmente para grandes volumes de dados numéricos.
  • Visão vs. Cópia: Ao utilizar copy=False, a operação pode retornar uma "visão" (view) dos dados originais em vez de uma cópia independente. Modificações na visão podem alterar o array original.

Tags: NumPy Array Python ndarray tipos de dados

Publicado em 8-4 04:01