Matriz de valores numéricos Python

Neste tutorial, você aprenderá sobre o módulo de array Python, a diferença entre arrays e listas e como e quando usá-los com a ajuda de exemplos.

Nota: Quando as pessoas dizem arrays em Python, na maioria das vezes, estão falando sobre listas Python . Se for esse o caso, visite o tutorial de lista do Python.

Neste tutorial, vamos nos concentrar em um módulo denominado array. O arraymódulo nos permite armazenar uma coleção de valores numéricos.

Criação de matrizes Python

Para criar uma matriz de valores numéricos, precisamos importar o arraymódulo. Por exemplo:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Resultado

 matriz ('d', (1,1, 3,5, 4,5))

Aqui, criamos um array do floattipo. A letra dé um código de tipo. Isso determina o tipo da matriz durante a criação.

Os códigos de tipo comumente usados ​​são listados a seguir:

Código Tipo C Tipo Python Bytes mínimos
b char assinado int 1
B caracter não identifcado int 1
u Py_UNICODE Unicode 2
h curto assinado int 2
H curto sem sinal int 2
i int assinado int 2
I int sem sinal int 2
l assinado por muito tempo int 4
L longo sem sinal int 4
f flutuador flutuador 4
d em dobro flutuador 8

Não discutiremos os diferentes tipos de C neste artigo. Usaremos dois códigos de tipo em todo o artigo: ipara inteiros e dpara flutuantes.

Nota : O ucódigo de tipo para caracteres Unicode está obsoleto desde a versão 3.3. Evite usar tanto quanto possível.

Acessando elementos do array Python

Usamos índices para acessar os elementos de uma matriz:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Resultado

 Primeiro elemento: 2 Segundo elemento: 4 Último elemento: 8

Nota : O índice começa em 0 (não 1) semelhante a listas.

Fatiando Arrays Python

Podemos acessar uma variedade de itens em uma matriz usando o operador de fatiamento :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Resultado

 array ('i', (62, 5, 42)) array ('i', (2, 5, 62)) array ('i', (52, 48, 5)) array ('i', (2 , 5, 62, 5, 42, 52, 48, 5))

Alterando e Adicionando Elementos

Arrays são mutáveis; seus elementos podem ser alterados de maneira semelhante às listas.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Resultado

 array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))

Podemos adicionar um item ao array usando o append()método ou adicionar vários itens usando o extend()método.

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Resultado

 array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))

Também podemos concatenar dois arrays usando o +operador.

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Resultado

 matriz ('i', (1, 3, 5, 2, 4, 6)) 

Removendo Python Array Elements

Podemos excluir um ou mais itens de um array usando a instrução del do Python.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Resultado

 array ('i', (1, 2, 3, 4)) Traceback (última chamada mais recente): Arquivo "", linha 9, em impressão (número) # Erro: array não está definido NameError: nome 'número' é não definido

Podemos usar o remove()método para remover o item fornecido e o pop()método para remover um item do índice fornecido.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Resultado

 array ('i', (10, 11, 12, 13)) 12 array ('i', (10, 11, 13))

Verifique esta página para saber mais sobre array Python e métodos de array.

Python Lists Vs Arrays

Em Python, podemos tratar listas como arrays. No entanto, não podemos restringir o tipo de elementos armazenados em uma lista. Por exemplo:

 # elements of different types a = (1, 3.5, "Hello") 

Se você criar matrizes usando o arraymódulo, todos os elementos da matriz devem ser do mesmo tipo numérico.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Resultado

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

A menos que você realmente não precise de arrays (o módulo de array pode ser necessário para fazer interface com o código C), o uso do módulo de array não é recomendado.

Artigos interessantes...