Inleiding tot multidimensionale arrays in Python

Vaak hebben we in het dagelijks leven problemen waarbij we sommige gegevens in een rechthoekig tabelformaat moeten opslaan. Deze tabellen kunnen ook een matrix of 2D-array worden genoemd. In Python kunnen multidimensionale arrays worden bereikt door een lijst in de lijst of geneste lijsten te hebben. De lijst kan worden gebruikt om gegevens in de onderstaande indeling in python weer te geven:

Lijst = (1, 2, 3)

De lijst kan worden geschreven met door komma's gescheiden waarden. De lijst kan gegevens bevatten zoals integer, float, string, enz. En kan ook worden aangepast na het aanmaken. Het indexeren in lijsten is vrij eenvoudig met de index vanaf 0 en strekt zich uit tot de volledige lengte van lijst-1.

Wanneer een lijst andere lijsten bevat als elementen, vormt het een multidimensionale lijst of array. Bijvoorbeeld:

Lijst = ((1, 2), (2, 5), (5, 1))

Hier is elke waarde van de lijst toegankelijk door de lijstnaam te schrijven, gevolgd door een vierkante haak om de buitenste lijstwaarden op te halen, zoals hieronder:

Afdrukken (lijst (1))

# (2, 5)

Als je verder wilt gaan in de binnenlijst, voeg dan nog een vierkante haak toe om toegang te krijgen tot de elementen zoals hieronder:

Afdrukken (lijst (1) (0))

# 2

Evenzo, als we meerdere lijsten in een lijst hebben, zoals:

Lijst = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) #kan ook worden bekeken als

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Alle elementen van de lijst zijn toegankelijk via onderstaande indices:

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

Een multidimensionale lijst of array maken

Laten we aannemen dat we twee variabelen hebben als, het aantal rijen 'r' en het aantal kolommen 'c'. daarom kan een matrix met de grootte m * n worden gemaakt als:

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

Dit type declaratie maakt geen m * n spaties in het geheugen, maar er wordt slechts één geheel getal gemaakt waarnaar door elk element van de binnenlijst wordt verwezen, terwijl de binnenlijsten als elementen in de buitenlijst worden geplaatst. Dus als we een element in 5 veranderen, heeft de hele array 5 als waarden in elke elementplaats van dezelfde kolom als hieronder:

Matrix (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Een andere manier om een ​​array aan te geven is door een generator te gebruiken met een lijst van 'c' elementen die 'r' keer worden herhaald. De verklaring kan als volgt worden gedaan:

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

Hier is elk element volledig onafhankelijk van de andere elementen van de lijst. De lijst (0) * c wordt r keer opgebouwd als een nieuwe lijst, en hier gebeurt het kopiëren van referenties niet.

Hoe waarden invoeren in multidimensionale arrays?

Hier veronderstellen we een 2D-array met r rijen en c kolommen waarvoor we de waarden van de elementen van de gebruiker zullen nemen.

# Gebruiker voert het aantal rijen in op de eerste regel

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

Itererende waarden van een multidimensionale array

Om alle elementen van de multidimensionale array te doorlopen, moeten we het concept genest voor lus gebruiken zoals hieronder:

# eerst maken we een reeks c-kolommen en r-rijen

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) ) )

Numpy multidimensionale arrays

Laten we de numpy multimedia-arrays in python bekijken:

Numpy is een vooraf gedefinieerd pakket in python dat wordt gebruikt voor het uitvoeren van krachtige wiskundige bewerkingen en ondersteuning van een N-dimensionaal arrayobject. De array-klasse van Numpy staat bekend als "ndarray", wat de sleutel is tot dit framework. Objecten uit deze klasse worden een numpy array genoemd. Het verschil tussen Multidimensionale lijst en Numpy Arrays is dat numpy arrays homogeen zijn, d.w.z. dat het een geheel getal, string, float, etc., waarden kan bevatten en de grootte ervan is vast. De multidimensionale lijst kan eenvoudig worden geconverteerd naar Numpy-arrays zoals hieronder:

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

Hier wordt de gegeven multidimensionale lijst gegoten naar Numpy array arr.

Een Numpy-array maken

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

Output:

((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))

Toegang tot Numpy Matrix-elementen, rijen en kolommen

Elk element van de Numpy-array kan op dezelfde manier worden benaderd als van Multidimensional List, dwz de arraynaam gevolgd door twee vierkante accolades die de rij- en kolomindex vertellen om een ​​specifiek element te kiezen.

Voorbeeld:

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

Output:

2

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

Enkele eigenschappen van Numpy Array

Enkele basiseigenschappen van Numpy-arrays worden in het onderstaande programma gebruikt:

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())

Output:
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)) Transponeren van X = ((0 3 6) (1 4 7) (2 5 8))

Conclusie

Multidimensionale arrays in Python bieden de mogelijkheid om verschillende soorten gegevens op te slaan in een enkele array (dat wil zeggen in het geval van een multidimensionale lijst) waarbij elk element binnen de array onafhankelijke gegevens van de rest van de array met zijn eigen lengte kan opslaan, ook bekend als gekartelde array, wat niet kan worden bereikt in Java, C en andere talen.

Aanbevolen artikelen

Dit is een gids voor multidimensionale arrays in Python. Hier bespreken we de inleiding tot multidimensionale arrays in Python, het maken van een multidimensionale lijst of array, enz. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. C # Jagged Arrays
  2. 3D-arrays in Java
  3. Wat is TensorFlow?
  4. Wat is NumPy?
  5. Voor lus in PHP
  6. 3D-arrays in C ++
  7. Arrays in PHP
  8. Hoe arrays en lijsten werken in Python?
  9. Hoe werkt Array in Unix met Syntax?