Johdanto moniulotteisista ryhmistä Pythonissa

Usein jokapäiväisessä elämässä meillä on ongelmia, joissa meidän on tallennettava joitain tietoja suorakaiteen muotoiseen taulukomuotoon. Näitä taulukoita voidaan kutsua myös matriisiksi tai 2D-taulukkoksi. Pythonissa moniulotteiset taulukot voidaan saavuttaa pitämällä luetteloa luettelon sisällä tai sisäkkäisiä luetteloita. Listaa voidaan käyttää edustamaan alla olevassa muodossa olevia tietoja python:

Lista = (1, 2, 3)

Lista voidaan kirjoittaa pilkuilla erotetuilla arvoilla. Luettelossa voi olla tietoja, kuten kokonaisluku, kelluva arvo, merkkijono jne., Ja sitä voidaan muokata myös luomisen jälkeen. Indeksointi luetteloissa on melko suoraviivaista indeksin alkaessa nollasta ja ulottuu luettelon 1 koko pituuteen.

Kun luettelossa on muita luetteloita elementteinä, se muodostaa moniulotteisen luettelon tai taulukon. Esimerkiksi:

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

Täältä jokaiseen luettelon arvoon pääsee kirjoittamalla luettelon nimi ja sen jälkeen hakasulke hakeaksesi ulkoiset luettelon arvot seuraavasti:

Tulosta (luettelo (1))

# (2, 5)

Jos haluat mennä pidemmälle sisäisen luettelon sisällä, lisää vielä yksi hakasulke päästäksesi sen elementteihin seuraavasti:

Tulosta (Lista (1) (0))

# 2

Vastaavasti, jos luettelossa on useita luetteloita, kuten:

Lista = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # voidaan katsoa myös

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Kaikille luettelon elementeille pääsee alla olevien indeksien avulla:

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

Moniulotteisen luettelon tai taulukon luominen

Oletetaan, että meillä on kaksi muuttujaa, kuten rivien lukumäärä r ja sarakkeiden lukumäärä c. siten, että saadaan matriisi, jonka koko on m * n, voidaan tehdä seuraavasti:

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

Tämäntyyppinen ilmoitus ei synny m * n-välilyöntejä muistiin, vaan luodaan vain yksi kokonaisluku, johon viittaa jokainen sisäisen luettelon elementti, kun taas sisäiset luettelot asetetaan elementteinä ulkoiseen luetteloon. Siksi, jos muutamme minkä tahansa elementin arvoon 5, niin koko taulukon arvoina on 5 arvot saman sarakkeen kussakin elementtipaikassa kuin alla:

Matriisi (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Toinen tapa ilmoittaa taulukko on käyttää generaattoria, jonka luettelo c-elementeistä toistetaan 'r' -kertoilla. Ilmoitus voidaan tehdä seuraavasti:

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

Tässä kukin elementti on täysin riippumaton luettelon muista elementeistä. Lista (0) * c rakennetaan r kertaa uudeksi luetteloksi, ja tässä ei tapahdu viitteiden kopiointia.

Kuinka lisätä arvoja moniulotteisiin taulukkoihin?

Oletetaan tässä 2D-taulukko, jossa on riviä ja c-sarakkeita, joille otamme elementtien arvot käyttäjältä.

# Käyttäjä kirjoittaa rivien määrän ensimmäiselle riville

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

Moniulotteisen taulukon toistuvat arvot

Jatkaistaksemme läpi moniulotteisen taulukon kaikki elementit, meidän on käytettävä sisäkkäisiä silmukkakonseptiin seuraavasti:

# Aluksi luomme joukon c-sarakkeita ja riviä

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 moniulotteiset ryhmät

Katsotaanpa pipit-multimediamatriisit pythonissa:

Numpy on pythonin ennalta määritetty paketti, jota käytetään voimakkaiden matemaattisten toimintojen suorittamiseen ja N-ulotteisen matriisiobjektin tukemiseen. Numpyn matriisiluokka tunnetaan nimellä “ndarray”, joka on avain tähän kehykseen. Tämän luokan objekteille viitataan nimellä typy-taulukko. Ero moniulotteisen luettelon ja Numpy-taulukkojen välillä on se, että numpy-taulukot ovat homogeenisia, ts. Ne voivat sisältää vain kokonaisluvun, merkkijonon, kelluvan jne. Arvot ja sen koko on kiinteä. Moniulotteinen luettelo voidaan helposti muuntaa Numpy-taulukkoon seuraavasti:

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

Täällä annettu moniulotteinen luettelo heitetään Numpy-matriisin arkeille.

Numpy-taulukon luominen

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

lähtö:

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

Numpy Matrix -elementtien, -rivien ja -sarakkeiden käyttäminen

Jokaiseen Numpy-taulukon elementtiin pääsee samalla tavalla kuin moniulotteiseen luetteloon, ts. Taulukon nimi, jota seuraa kaksi neliömäistä aaltosulketta, jotka ilmoittavat rivin ja sarakkeen hakemistolle tietyn elementin valitsemisen.

Esimerkki:

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

lähtö:

2

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

Jotkut Numpy Array -ominaisuudet

Joitakin Numpy-taulukkojen perusominaisuuksia käytetään alla olevassa ohjelmassa:

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

lähtö:
nolla_matriisi = ((0. 0.) (0. 0.) (0. 0.)) yksi_matriisi = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1 2) (3 4 5) (6 7 8)) Siirrä X = ((0 3 6) (1 4 7) (2 5 8))

johtopäätös

Moniulotteiset taulukot Pythonissa tarjoavat mahdollisuuden tallentaa erityyppisiä tietoja yhdeksi taulukkoksi (ts. Moniulotteisen luettelon tapauksessa) kunkin elementin sisäisen taulukon avulla, joka pystyy tallentamaan riippumattomia tietoja muusta taulukosta omalla pituudellaan, joka tunnetaan myös nimellä rosoinen taulukko, jota ei voida saavuttaa Java-, C- ja muilla kielillä.

Suositellut artikkelit

Tämä on opas moniulotteisista ryhmistä Pythonissa. Tässä keskustellaan Pythonin moniulotteisten ryhmien johdannosta, moniulotteisen luettelon tai taulukon luomisesta jne. Voit myös käydä läpi muiden ehdottamien artikkeleidemme saadaksesi lisätietoja -

  1. C # Jagged-ryhmät
  2. 3D-taulukot Java-tilassa
  3. Mikä on TensorFlow?
  4. Mikä on NumPy?
  5. Loopille PHP: ssä
  6. 3D-taulukot C ++: ssa
  7. Taulukot PHP: ssä
  8. Kuinka taulukot ja luettelot toimivat Pythonissa?
  9. Kuinka Array toimii Unixissä Syntaxin kanssa?