Jak iterować kolumny w Numpy

Jak iterować kolumny w Numpy
W tym artykule zbadamy, jak iterować kolumny tablicy Numpy. Zobaczymy wszystkie podstawowe metody tego. Zobaczymy również zaawansowane metody iteracji, takie jak metoda obiektu NDITER.

Metoda 1: Zastosowanie do pętli

W tej metodzie iteruje tablicę 1-D (wymiarów) za pomocą pętli dla. To tylko podobny sposób do innych języków programowania C, C ++, Python itp.

importnumpyasnp
ARR = NP.Arange (12)
FORVALINARR:
print (val, end = ”)

Wyjście:

0 1 2 3 4 5 6 7 8 9 10 11

Linia 1: Importujemy bibliotekę Numpy jako NP. Abyśmy mogli użyć tej przestrzeni nazw (NP) zamiast pełnej nazwy Numpy.

Linia 2: Stworzyliśmy szereg 12 elementów, które wygląda jak poniżej:

tablica ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])

Linia 3 do 4: Używamy teraz pętli do iteracji każdego elementu tablicy i wydrukowania tej wartości elementu.

Metoda 2: Korzystanie z pętli

W tej metodzie iteruje tablicę 1-D (wymiarów) za pomocą pętli While.

importnumpyasnp
ARR = NP.Arange (12)
i = 0
Whilearr [i] print (ARR [i])
i = i+1
if (i == arr.rozmiar):
przerwa

Wyjście:

0
1
2
3
4
5
6
7
8
9
10
11

Linia 4 do 8: W tym pętli pętla trwa do wielkości tablicy (ARR. rozmiar) jest mniejszy niż ARR [i], ponieważ, jak wiemy, ostatnia wartość elementu wyniesie 11, a rozmiar tablicy wynosi 12. Jeśli warunek jest prawdziwy, wydrukuj ten element i zwiększ wartość iteracji (i) o 1. Jeśli liczba wartości iteracji jest równa rozmiarowi tablicy, wówczas przerwa wywoła i wyjdzie z pętli. ARR.rozmiar zwróci liczbę elementów w tablicy.

Metoda 3: Iteracja dwuwymiarowej tablicy

Aby iterować dwuwymiarową tablicę, potrzebujemy zagnieżdżonej pętli. Ale jeśli używamy singla do pętli, to iterujemy tylko nad rządem.

Zrozummy to przykładem.

ARR = NP.Arange (12).Reshape (4,3)
dla Row inarr:
Drukuj (wiersz)

Wyjście:

[0 1 2]
[3 4 5]
[6 7 8]
[9 10 11]

Linia 2 do 3: Dostaliśmy wyjściowe wiersze, ponieważ za pomocą pojedynczej pętli nie mogliśmy iterować każdej komórki tablicy 2-D.

Za pomocą zagnieżdżonej pętli.

ARR = NP.Arange (12).Reshape (4,3)
dla Row inarr:
Dla komórki w rzędzie:
druk (komórka, end = '\ t')
Drukuj („\ n”)

Wyjście:

0 1 2
3 4 5
6 7 8
9 10 11

Linia 2 do 5: W powyższym programie używamy dwóch pętli, aby iterować tablicę 2D. Pierwsza pętla przyjmuje wartość wiersza z ARR, a następna pętla uzyskuje dostęp do wszystkich elementów tablicy wiersza i wydruków na ekranie, jak pokazano na wyjściu.

Metoda 4: Zastosowanie metody spłaszczenia

Inną metodą jest spłaszczona metoda. Metoda spłaszczona przekształca tablicę 2-D w układ jednorodkowy. Nie potrzebujemy dwóch pętli, aby iterować tablicę 2-D, jeśli używamy metody spłaszczonej.

ARR = NP.Arange (12).Reshape (4,3)
dla komórki inarr.spłaszczyć():
druk (komórka, end = ")

Wyjście:

0 1 2 3 4 5 6 7 8 9 10 11

Linia 2 do 3: Metoda flatten () przekonwertowała tablicę 2-D na tablicę 1-D i iterujemy ją tak samo jak tablica 1-D. Tutaj nie musimy używać dwóch do pętli.

Metoda 5: Korzystanie z obiektu Nditer

Numpy zapewnia również dodatkową metodę iterowanie tablicy 2-D. Ta metoda nazywa się metodą NDiter. W poprzednim przykładzie możemy również wypróbować metodę NDiter, jak podano poniżej:

ARR = NP.Arange (12).Reshape (4,3)
dla Cell Innp.Nditer (ARR):
druk (komórka, end = ")

Wyjście:

0 1 2 3 4 5 6 7 8 9 10 11

Linia 2 do 3: Przekazujemy naszą tablicę do metody nditer (), a teraz możemy uzyskać dostęp do każdego elementu, podobnie jak metoda flatten ().

Zamówienie iteracji Nditer

Możemy również kontrolować metodę dostępu NDiter za pomocą innego parametru o nazwie Zakaz. Jeśli określamy kolejność jako C, wówczas NDiter uzyska dostęp do elementów poziomych, a jeśli określamy kolejność jako F, ​​wówczas dostęp do elementów pionowo. Zrozumiemy to przykładem każdego zamówienia.

Zamów jako C:

# C iteracja zamówienia
ARR = NP.Arange (12).Reshape (4,3)
dla Cell Innp.nditer (arr, order = 'c'):
druk (komórka, end = ")

Wyjście:

0 1 2 3 4 5 6 7 8 9 10 11

Jeśli drukujemy tylko ARR, otrzymujemy dane wyjściowe, jak podaj poniżej:

tablica ([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])

Teraz, gdy używamy pętli NDiter z zamówieniem jako C. Tak więc będzie dostępny do elementów poziomo. Jeśli więc zobaczymy w powyższym wyjściu tablicy, nasze wartości powinny wynosić 0,1,2, a następnie 3, 4, 5 i tak dalej. Tak więc nasz wynik jest również w tej samej sekwencji, która pokazuje, że zamówienie C działa poziomo.

Zamów jako F:

# F iteracja zamówienia
ARR = NP.Arange (12).Reshape (4,3)
dla Cell Innp.nditer (arr, order = 'f'):
druk (komórka, end = ")

Wyjście:

0 3 6 9 1 4 7 10 2 5 8 11

Jeśli drukujemy tylko ARR, otrzymujemy dane wyjściowe, jak podaj poniżej:

tablica ([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])

Teraz, gdy używamy pętli NDiter z zamówieniem jako F. Tak więc będzie dostępny do elementów pionowo. Więc jeśli zobaczymy w powyższym wyjściu tablicy, nasze wartości powinny wynosić 0,3,6,9, wówczas 1, 4, 7,10 i tak dalej. Tak więc nasz wynik jest również w tej samej sekwencji, która pokazuje, że zamówienie F działa pionowo.

Metoda 6: Modyfikacja wartości tablicy Numpy podczas korzystania z NDiter

Domyślnie NDiter traktuje elementy tablicy jako tylko odczyt i nie możemy go zmodyfikować. Jeśli spróbujemy to zrobić, Numpy podniesie błąd.

Ale jeśli chcemy edytować wartości tablicy Numpy, musimy użyć innego parametru o nazwie op_flags = ['readWrite'].

Zrozummy to przykładem:

dla Cell Innp.Nditer (ARR):
komórka […] = komórka*2

Wyjście:

---------------------------------------------------------------------------
Traceback Valueerror (najnowsze połączenie ostatnie)
W
1 For Cell Innp.Nditer (ARR):
----> 2 komórka […] = komórka*2
ValueerRor: Pierścień docelowy jest tylko do odczytu

Z op_flags = ['readWrite'] parametr.

dla Cell Innp.nditer (arr, op_flags = ['readWrite']):
komórka […] = komórka-3
Arr

OUPUT:

tablica ([[ -3, -2, -1],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

Wniosek:

W tym artykule zbadaliśmy wszystkie metody iterację tablicy Numpy. Najlepszą metodą jest nditer. Ta metoda NDiter jest bardziej zaawansowana w obsłudze elementów macierzy Numpy. Tutaj w tym artykule wszystkie podstawowe pojęcia będą jasne, a także możesz przyjrzeć się bardziej zaawansowanym metodom NDiter, takich jak iteracja redukcji. Są to metody takie jak iteracje redukcji, które są technikami radzenia sobie z elementami tablicy Numpy w różnych formach.

Kod tego artykułu jest dostępny pod poniższym linkiem:

https: // github.COM/shekharpandey89/Numpy-Columns-Iterations-Metods