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 -
- C # nazubljeni nizovi
- 3D nizovi na Javi
- Što je TensorFlow?
- Što je NumPy?
- Za petlju u PHP-u
- 3D nizovi u jeziku C ++
- Nizovi u PHP-u
- Kako nizovi i popisi rade u Pythonu?
- Kako Array djeluje u Unixu sa sintaksom?