Introduzione alle matrici multidimensionali in Python

Spesso nella vita quotidiana, abbiamo problemi in cui è necessario archiviare alcuni dati in un formato di tabella rettangolare. Queste tabelle possono anche essere chiamate matrici o array 2D. In Python, le matrici multidimensionali possono essere ottenute avendo un elenco all'interno dell'elenco o degli elenchi nidificati. L'elenco può essere utilizzato per rappresentare i dati nel formato seguente in Python:

Elenco = (1, 2, 3)

L'elenco può essere scritto con valori separati da virgola. L'elenco può contenere dati come numeri interi, float, stringhe, ecc. E può essere modificato anche dopo la creazione. L'indicizzazione nelle liste è piuttosto semplice con l'indice che parte da 0 e si estende per l'intera lunghezza della lista-1.

Quando un elenco contiene altri elenchi come elementi, forma un elenco o un array multidimensionale. Per esempio:

Elenco = ((1, 2), (2, 5), (5, 1))

Qui è possibile accedere a ciascun valore dell'elenco scrivendo il nome dell'elenco seguito da una parentesi quadra per recuperare i valori dell'elenco esterno come di seguito:

Stampa (Elenco (1))

# (2, 5)

Se vuoi andare oltre all'interno dell'elenco interno aggiungi un'altra parentesi quadra per accedere ai suoi elementi come di seguito:

Stampa (Elenco (1) (0))

# 2

Allo stesso modo, se abbiamo più elenchi all'interno di un elenco come:

Elenco = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) #può anche essere visto come

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Tutti gli elementi dell'elenco sono accessibili dagli indici seguenti:

(0) (0), (0) (1), (0) (2) (1) (0), (1) (1), (1) (2) (2) (0), (2) (1), (2) (2)

Creazione di un elenco o matrice multidimensionale

Supponiamo di avere due variabili come, il numero di righe 'r' e il numero di colonne 'c'. quindi per creare una matrice di dimensioni m * n, si può fare come:

Array = ( (0) * c ) * r ) # with each element value as 0

Questo tipo di dichiarazione non creerà m * n spazi in memoria, ma verrà creato solo un numero intero a cui fa riferimento ciascun elemento dell'elenco interno mentre gli elenchi interni vengono inseriti come elementi nell'elenco esterno. Quindi, in tal caso, se cambiamo qualsiasi elemento in 5, l'intero array avrà 5 come valori in ciascun elemento posto nella stessa colonna di seguito:

Matrice (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Un altro modo per dichiarare un array è usare un generatore con un elenco di elementi 'c' ripetuti 'r' volte. La dichiarazione può essere fatta come di seguito:

c = 4
r = 3
Array = ( (0) * c for i in range(r) )

Qui ogni elemento è completamente indipendente dagli altri elementi della lista. L'elenco (0) * c è costruito r volte come un nuovo elenco e qui non si verifica alcuna copia di riferimenti.

Come inserire valori in array multidimensionali?

Qui supponiamo un array 2D con r righe e colonne c per le quali prenderemo i valori degli elementi dall'utente.

# L'utente inserirà il numero di righe nella prima riga

r = int(input())
arr = () for i in range(r):
arr.append((int(j) for j in input().split()))

Valori iteranti di una matrice multidimensionale

Per iterare tutti gli elementi dell'array multidimensionale, dobbiamo usare il concetto di ciclo nidificato come di seguito:

# all'inizio creeremo una matrice di colonne c e r righe

c = 4
r = 3
arr = ((0) * c for i in range(r)) # loop will run for the length of the outer list
for i in range(r):
# loop will run for the length of the inner lists
for j in range(c):
if i < j:
arr(i)(j) = 8
elif i > j:
arr(i)(j) = 4
else:
arr(i)(j) = 7
for r in arr:
print( ' '.join((str(x) for x in r) ) )

Matrici multidimensionali intorpidite

Vediamo gli array multimediali intorpiditi in Python:

Numpy è un pacchetto predefinito in Python utilizzato per eseguire potenti operazioni matematiche e supportare un oggetto array N-dimensionale. La classe di array di Numpy è conosciuta come "ndarray" che è la chiave di questo framework. Gli oggetti di questa classe vengono definiti array numpy. La differenza tra l'elenco multidimensionale e gli array Numpy è che gli array numpy sono omogenei, cioè possono contenere solo valori interi, stringhe, float, ecc. E la sua dimensione è fissa. L'elenco multidimensionale può essere facilmente convertito in array Numpy come di seguito:

import numpy as nmp
arr = nmp.array( ( (1, 0), (6, 4) ) )
print(arr)

Qui il dato elenco multidimensionale viene trasmesso all'array Numpy arr.

Creazione di un array Numpy

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ) )
print(X) #Array of integers
X = nmp.array( ( ( 1, 6.2, 7), ( 5, 9, 2) ) )
print(X) #Array of floats
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ), dtype = complex )
print(X) #Array of complex numbers

Produzione:

((1 6 7) (5 9 2)) ((1. 6.2 7.) (5. 9. 2.)) ((1. + 0.j 6. + 0.j 7. + 0.j) (5. + 0.j 9. + 0.j 2. + 0.j))

Accesso a Numpy Matrix Elements, righe e colonne

È possibile accedere a ciascun elemento dell'array Numpy allo stesso modo dell'elenco multidimensionale, ovvero il nome dell'array seguito da due parentesi quadre che indicheranno all'indice di riga e colonna di scegliere un elemento specifico.

Esempio:

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7),
( 5, 9, 2),
( 3, 8, 4) ) )
print(X(1)(2)) # element at the given index ie 2
print(X(0)) # first row
print(X(1)) # second row
print(X(-1)) # last row
print(X(:, 0)) # first column
print(X(:, 2)) # third column
print(X(:, -1)) # last column

Produzione:

2

(1 6 7) (5 9 2) (3 8 4) (1 5 3) (7 2 4) (7 2 4)

Alcune proprietà dell'array Numpy

Alcune proprietà di base degli array Numpy sono utilizzate nel programma seguente:

import numpy as nmp
zero_array = nmp.zeros( (3, 2) )
print('zero_array = ', zero_array)
one_array = nmp.ones( (3, 2) )
print('one_array = ', one_array)
X = nmp.arange(9).reshape(3, 3)
print('X= ', X)
print('Transpose of X= ', X.transpose())

Produzione:
zero_array = ((0. 0.) (0. 0.) (0. 0.)) one_array = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) Trasposizione di X = ((0 3 6) (1 4 7) (2 5 8))

Conclusione

Le matrici multidimensionali in Python offrono la possibilità di archiviare diversi tipi di dati in un singolo array (cioè nel caso di un elenco multidimensionale) con ciascun array interno di elementi in grado di memorizzare dati indipendenti dal resto dell'array con la sua lunghezza nota anche come array frastagliato, che non può essere raggiunto in Java, C e altre lingue.

Articoli consigliati

Questa è una guida agli array multidimensionali in Python. Qui discutiamo l'introduzione alle matrici multidimensionali in Python, la creazione di un elenco o matrice multidimensionale, ecc. Puoi anche consultare gli altri articoli suggeriti per saperne di più–

  1. Matrici dentellate C #
  2. Matrici 3D in Java
  3. Che cos'è TensorFlow?
  4. Che cos'è NumPy?
  5. Per Loop in PHP
  6. Matrici 3D in C ++
  7. Matrici in PHP
  8. Come funzionano le matrici e le liste in Python?
  9. Come funziona l'array in Unix con la sintassi?

Categoria: