Uvod u višedimenzionalne nizove na Pythonu

Često u svakodnevnom životu imamo problema gdje moramo pohraniti neke podatke u obliku pravokutnog stola. Te se tablice mogu nazvati i matricom ili 2D matrijom. U Pythonu, višedimenzionalni nizovi mogu se postići tako da imaju popis unutar popisa ili ugniježđene liste. Popis se može koristiti za predstavljanje podataka u donjem formatu u pythonu:

Popis = (1, 2, 3)

Popis se može pisati s vrijednostima odvojenim zarezima. Popis može sadržavati podatke kao što su cijeli broj, plutati, niz itd., A može se mijenjati i nakon stvaranja. Indeksiranje na popisima je prilično ravno naprijed, s indeksom koji počinje od 0 i proteže se cijelom dužinom popisa-1.

Kad popis ima kao ostale elemente, on formira višedimenzionalni popis ili niz. Na primjer:

Popis = ((1, 2), (2, 5), (5, 1))

Ovdje se može pristupiti svakoj vrijednosti popisa pisanjem naziva popisa, a slijedi kvadratni uglati okvir za dobivanje vrijednosti vanjskog popisa, kako je dolje navedeno:

Ispis (Lista (1))

# (2, 5)

Ako želite otići dalje unutar unutarnjeg popisa, dodajte još jedan kvadratni nosač za pristup njegovim elementima kao što slijedi:

Ispis (Lista (1) (0))

# 2

Slično tome, ako na popisu imamo više popisa:

Popis = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # može se također gledati kao

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Svim elementima popisa može se pristupiti sa nižim indeksima:

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

Stvaranje višedimenzionalnog popisa ili niza

Pretpostavimo da imamo dvije varijable kao što su brojevi redova 'r' i broj stupaca 'c'. prema tome, napraviti matricu veličine m * n, može se načiniti kao:

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

Ova vrsta deklaracije neće stvoriti m * n razmake u memoriji, već će se stvoriti samo jedan cijeli broj na koji upućuje svaki element unutarnjeg popisa, dok se unutarnji popisi stavljaju kao elementi u vanjski popis. Dakle, u tom slučaju ako promijenimo bilo koji element u 5, tada će cijeli niz imati 5 kao vrijednosti na svakom mjestu elementa u istom stupcu kao dolje:

Niz (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Drugi način deklariranja Array je pomoću generatora s popisom 'c' elemenata ponovljenih 'r' puta. Izjava se može učiniti na sljedeći način:

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

Ovdje je svaki element potpuno neovisan o ostalim elementima popisa. Popis (0) * c sastavljen je r puta kao novi popis i ovdje se ne događa kopiranje referenci.

Kako unijeti vrijednosti u višedimenzionalne nizove?

Ovdje pretpostavljamo 2D niz s r redaka i c stupaca za koje ćemo uzimati vrijednosti elemenata od korisnika.

# Korisnik će u prvi redak unijeti broj redaka

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

Zamjenske vrijednosti višedimenzionalnog niza

Da bi se moglo ponoviti kroz sve elemente višedimenzionalnog niza, trebamo koristiti ugniježđeni koncept petlje kao što slijedi:

# isprva ćemo stvoriti niz c stupaca i r redaka

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 višedimenzionalni nizovi

Pogledajmo prigušeni multimedijski niz u pythonu:

Numpy je unaprijed definirani paket u pythonu koji se koristi za izvođenje snažnih matematičkih operacija i za podršku N-dimenzionalnom nizu objekata. Numpyjeva klasa niza poznata je kao "ndarray" što je ključno za ovaj okvir. Objekti iz ove klase nazivaju se numeriranim nizom. Razlika između višedimenzionalnog popisa i numeričkih nizova je u tome što su numerički nizovi homogeni, tj. Mogu sadržavati samo vrijednosti za cijeli broj, niz, plovak itd., A njihova je veličina fiksna. Višedimenzionalni popis može se lako pretvoriti u Numpy nizove kao što slijedi:

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

Ovdje je dati višedimenzionalni popis bačen na Numpy array niz.

Izrada Numpy Array

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

Izlaz:

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

Pristup elementima matrice matrice, redaka i stupaca

Svakom elementu Numpy matrice može se pristupiti na isti način kao i Multidimenzionalnom popisu, tj. Nazivu niza, a slijede dva uglata zagrada koja će reći indeks reda i stupaca da odaberu određeni element.

Primjer:

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

Izlaz:

2

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

Neke osobine Numpy Array-a

Neke osnovne osobine Numpy nizova koriste se u donjem programu:

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

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

Zaključak

Višedimenzionalni nizovi u Python-u pružaju mogućnost pohrane različitih vrsta podataka u jedan niz (tj. U slučaju višedimenzionalnog popisa) sa svakim unutarnjim nizom elemenata koji može pohraniti neovisne podatke s ostatka matrice, vlastite duljine poznate i kao nazvan niz, što se ne može postići na Java, C i drugim jezicima.

Preporučeni članci

Ovo je vodič za višedimenzionalne nizove na Pythonu. Ovdje smo raspravljali o Uvodu u višedimenzionalne nizove na Pythonu, stvaranju višedimenzionalnog popisa ili nizova itd. Također možete proći i kroz druge naše predložene članke da biste saznali više -

  1. C # nazubljeni nizovi
  2. 3D nizovi na Javi
  3. Što je TensorFlow?
  4. Što je NumPy?
  5. Za petlju u PHP-u
  6. 3D nizovi u jeziku C ++
  7. Nizovi u PHP-u
  8. Kako nizovi i popisi rade u Pythonu?
  9. Kako Array djeluje u Unixu sa sintaksom?

Kategorija: