NumPy massivlarini iteratsiya qilish


ULASHISH

Massivlarni iteratsiya qilish

Iteratsiya — elementlarni birma-bir aylanib chiqish demakdir.

NumPyda ko‘p o‘lchamli massivlar bilan ishlaganimiz uchun buni Pythonning oddiy for sikli yordamida bajarishimiz mumkin.

Agar 1-D massiv bo‘ylab iteratsiya qilsak, u har bir elementni birma-bir aylanib chiqadi.

Misol

Quyidagi 1-D massiv elementlari bo‘ylab iteratsiya qiling:

import numpy as np arr = np.array([1, 2, 3]) for x in arr:   print(x)
O‘zingiz sinab ko‘ring »

2-D massivlarni iteratsiya qilish

2-D massivda u barcha qatorlarni aylanib chiqadi.

Misol

Quyidagi 2-D massiv elementlari bo‘ylab iteratsiya qiling:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr:   print(x)
O‘zingiz sinab ko‘ring »

Agar n-D massiv bo‘ylab iteratsiya qilsak, u n-1-o‘lchamni birma-bir aylanib chiqadi.

Haqiqiy qiymatlarni, ya’ni skalyarlarni qaytarish uchun massivlarni har bir o‘lchamda iteratsiya qilishimiz kerak.

Misol

2-D massivning har bir skalyar elementi bo‘ylab iteratsiya qiling:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr:   for y in x:     print(y)
O‘zingiz sinab ko‘ring »


3-D massivlarni iteratsiya qilish

3-D massivda u barcha 2-D massivlarni aylanib chiqadi.

Misol

Quyidagi 3-D massiv elementlari bo‘ylab iteratsiya qiling:

import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr:   print(x)
O‘zingiz sinab ko‘ring »

Haqiqiy qiymatlarni, ya’ni skalyarlarni qaytarish uchun massivlarni har bir o‘lchamda iteratsiya qilishimiz kerak.

Misol

Skalyarlargacha iteratsiya qiling:

import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr:   for y in x:     for z in y:       print(z)
O‘zingiz sinab ko‘ring »

nditer() yordamida massivlarni iteratsiya qilish

nditer() funksiyasi — eng oddiydan tortib juda murakkab iteratsiyalargacha ishlatilishi mumkin bo‘lgan yordamchi funksiya. U iteratsiyada duch keladigan ba’zi asosiy muammolarni hal qiladi, keling, uni misollar bilan ko‘rib chiqamiz.

Har bir skalyar element bo‘ylab iteratsiya qilish

Oddiy for sikllarida massivning har bir skalyarini aylanib chiqish uchun n ta for siklidan foydalanishimiz kerak, buni juda ko‘p o‘lchamli massivlar uchun yozish qiyin bo‘lishi mumkin.

Misol

Quyidagi 3-D massiv bo‘ylab iteratsiya qiling:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) for x in np.nditer(arr):   print(x)
O‘zingiz sinab ko‘ring »

Massivni boshqa ma’lumot tiplari bilan iteratsiya qilish

Iteratsiya vaqtida elementlarning ma’lumot tipini o‘zgartirish uchun op_dtypes argumentidan foydalanib, unga kutilayotgan ma’lumot tipini uzatishimiz mumkin.

NumPy elementning ma’lumot tipini joyida (element massivda turgan joyda) o‘zgartirmaydi, shuning uchun bu amalni bajarish uchun unga boshqa joy kerak bo‘ladi; bu qo‘shimcha joy bufer deb ataladi va uni nditer()da yoqish uchun flags=['buffered']ni uzatamiz.

Misol

Massiv elementlarini string sifatida iteratsiya qiling:

import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']):   print(x)
O‘zingiz sinab ko‘ring »

Turli qadam o‘lchami bilan iteratsiya qilish

Avval filtrlash, so‘ng iteratsiyadan foydalanishimiz mumkin.

Misol

2D massivning har bir skalyar elementi bo‘ylab 1 tadan elementni tashlab o‘tib iteratsiya qiling:

import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]):   print(x)
O‘zingiz sinab ko‘ring »

ndenumerate() yordamida raqamlangan iteratsiya

Raqamlash (enumeration) — narsalarning tartib raqamini birma-bir ko‘rsatib borish demakdir.

Ba’zan iteratsiya vaqtida elementning tegishli indeksi kerak bo‘ladi; bunday holatlarda ndenumerate() metodidan foydalanish mumkin.

Misol

Quyidagi 1D massiv elementlarini raqamlab chiqing:

import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr):   print(idx, x)
O‘zingiz sinab ko‘ring »

Misol

Quyidagi 2D massiv elementlarini raqamlab chiqing:

import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for idx, x in np.ndenumerate(arr):   print(idx, x)
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!