Bevezetés a többdimenziós tömbökbe a Pythonban

A mindennapi életben gyakran vannak olyan problémák, amikor bizonyos adatokat téglalap alakú tábla formátumban kell tárolni. Ezeket a táblákat mátrixnak vagy 2D tömbnek is nevezhetjük. A Pythonban a többdimenziós tömbök úgy érhetők el, ha a listán belül van egy lista vagy beágyazott listák. A lista felhasználható az adatok python formájában az alábbi formátumban való ábrázolására:

Lista = (1, 2, 3)

A listát vesszővel elválasztott értékekkel lehet írni. A lista tartalmazhat olyan adatokat, mint egész, float, karakterlánc, stb., És a létrehozás után is módosítható. A listákban az indexálás meglehetősen egyenes, ha az index 0-tól kezdődik, és egész az 1. lista teljes hosszáig terjed.

Ha egy lista elemeinek más listái vannak, akkor többdimenziós listát vagy tömböt képez. Például:

Lista = ((1, 2), (2, 5), (5, 1))

Itt a lista mindegyik értéke elérhető a lista nevének, majd szögletes zárójelbeírásával, a következő listaértékek lekérdezéséhez:

Nyomtatás (1. lista)

# (2, 5)

Ha tovább akar lépni a belső listán, adjon hozzá még egy szögletes zárójelet az alábbiak szerint:

Nyomtatás (1. lista (0))

# 2

Hasonlóképpen, ha egy listán belül több lista van, például:

Lista = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # is tekinthető

| 1, 3, 5 |

| 8., 5., 6. |

| 7., 1., 6. |

A lista összes eleméhez az alábbi indexek férhetnek hozzá:

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

Többdimenziós lista vagy tömb létrehozása

Tegyük fel, hogy két változónk van: „r” sorok száma és „c” oszlopok száma. így az m * n méretű mátrixot el lehet készíteni:

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

Ez a típusú deklaráció nem hoz létre m * n szóközöket a memóriában, hanem csak egy egész számot hoz létre, amelyre a belső lista minden eleme hivatkozik, míg a belső listákat elemekként helyezik a külső listába. Ezért abban az esetben, ha bármelyik elemet 5-re változtatjuk, akkor a teljes tömb értéke 5 lesz az azonos oszlop minden elemének helyén, az alábbiak szerint:

Tömb (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

A tömb deklarálásának másik módja egy generátor használata, amelyben az „r” alkalommal megismételt „c” elemek listája van. A nyilatkozatot az alábbiak szerint lehet megtenni:

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

Itt minden elem teljesen független a lista többi elemétől. A (0) * c listát r-szer új listaként építik fel, és itt nem történik a referenciák másolása.

Hogyan adhatunk be értékeket a többdimenziós tömbökbe?

Itt egy 2D tömböt feltételezünk, sorok és c oszlopokkal, amelyekre az elemek értékeit a felhasználótól vesszük.

# A felhasználó beírja a sorok számát az első sorba

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

Egy többdimenziós tömb ismétlődő értékei

Annak érdekében, hogy a többdimenziós tömb összes elemén keresztül iteráljunk, az alábbiak szerint beágyazott hurkot kell használni:

# eleinte létrehozunk egy sor oszlopot és sorot

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

Finom többdimenziós tömbök

Nézzük meg a csúnya multimédiás tömböket a pythonban:

A Numpy egy előre meghatározott csomag a pythonban, amelyet erős matematikai műveletek végrehajtására és egy N-dimenziós tömb objektum támogatására használnak. Numpy tömb osztályát „ndarray” néven ismerték, ami kulcsfontosságú ennek a keretnek. Az ebbe az osztályba tartozó tárgyakat számtalan tömbnek nevezzük. A többdimenziós lista és a Numpy Arrays közötti különbség az, hogy a számtalan tömbök homogének, azaz csak egész számot, karakterláncot, úszót stb. Tartalmazhatnak, és értékük rögzített. A többdimenziós listát az alábbiak szerint könnyen konvertálhatjuk Numpy tömbökké:

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

Itt az adott többdimenziós listát a Numpy tömb arckévé kell adni.

Finom tömb létrehozása

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

Kimenet:

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

Hozzáférés a hüvelyes mátrix elemekhez, sorokhoz és oszlopokhoz

A Numpy tömb minden eleméhez hasonlóan lehet hozzáférni, mint a Többdimenziós listához, azaz a tömb nevét, amelyet két négyzet alakú zárójelek követnek, amelyek megmondják a sor- és oszlopindexet az adott elem kiválasztásához.

Példa:

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

Kimenet:

2

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

A Numpy Array néhány tulajdonsága

A Numpy tömbök néhány alapvető tulajdonságát az alábbi program használja:

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

Kimenet:
nulla_tömb = ((0. 0.) (0. 0.) (0. 0.)) egy_tömb = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) X átültetése = ((0 3 6) (1 4 7) (2 5 8))

Következtetés

A Python többdimenziós tömbjei lehetővé teszik a különféle típusú adatok egyetlen tömbbe történő tárolását (azaz többdimenziós lista esetén), az egyes belső belső tömbökkel, amelyek képesek a tömb többi részétől független adatok tárolására, saját hosszukkal, tömör tömbként is ismertek, amelyet Java, C és más nyelveken nem lehet elérni.

Ajánlott cikkek

Ez egy útmutató a többdimenziós tömbökről Pythonban. Itt tárgyaljuk a Python többdimenziós tömbjeinek bevezetését, Többdimenziós listák vagy tömbök létrehozását, stb.

  1. C # egyenetlen tömbök
  2. 3D tömbök Java-ban
  3. Mi a TensorFlow?
  4. Mi a NumPy?
  5. A Loop számára a PHP-ben
  6. 3D tömbök C ++ formátumban
  7. Tömbök a PHP-ben
  8. Hogyan működnek a tömbök és a listák a Pythonban?
  9. Hogyan működik a tömb az Unix-ban a szintaxissal?

Kategória: