NumPy massivlarini bo‘lish
NumPy massivlarini bo‘lish
Bo‘lish — birlashtirishning teskari amali.
Birlashtirish bir nechta massivni bittaga qo‘shadi, bo‘lish esa bitta massivni bir nechtaga ajratadi.
Massivlarni bo‘lish uchun array_split()dan foydalanamiz: unga bo‘lmoqchi bo‘lgan massivimizni va bo‘laklar sonini uzatamiz.
Misol
Massivni 3 qismga bo‘ling:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)
O‘zingiz sinab ko‘ring »
Eslatma: Qaytariladigan qiymat uchta massivdan iborat ro‘yxatdir.
Agar massivdagi elementlar talab qilinganidan kam bo‘lsa, u oxiridan boshlab mos ravishda moslashtiriladi.
Misol
Massivni 4 qismga bo‘ling:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)
O‘zingiz sinab ko‘ring »
Eslatma: Bizda split() metodi ham bor, lekin u yuqoridagi misoldagi kabi manba massivda bo‘lish uchun elementlar yetarli bo‘lmaganda elementlarni moslashtirmaydi: array_split() to‘g‘ri ishladi, split() esa xato beradi.
Massivlarga bo‘lish
array_split() metodining qaytaradigan qiymati — har bir bo‘lakni massiv sifatida o‘z ichiga olgan ro‘yxat.
Agar massivni 3 ta massivga bo‘lsangiz, ularga natijadan xuddi oddiy massiv elementlariga kabi murojaat qilishingiz mumkin:
Misol
Bo‘lingan massivlarga murojaat qiling:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
O‘zingiz sinab ko‘ring »
2-D massivlarni bo‘lish
2-D massivlarni bo‘lishda ham xuddi shu sintaksisdan foydalaning.
array_split() metodidan foydalaning, unga bo‘lmoqchi bo‘lgan massivni va nechta bo‘lakka bo‘lmoqchi ekaningizni uzating.
Misol
2-D massivni uchta 2-D massivga bo‘ling.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
O‘zingiz sinab ko‘ring »
Yuqoridagi misol uchta 2-D massiv qaytaradi.
Keling, yana bir misolni ko‘rib chiqamiz, bu safar 2-D massivlardagi har bir element 3 ta elementdan iborat.
Misol
2-D massivni uchta 2-D massivga bo‘ling.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
O‘zingiz sinab ko‘ring »
Yuqoridagi misol uchta 2-D massiv qaytaradi.
Bundan tashqari, bo‘lish qaysi o‘q bo‘yicha bajarilishini ko‘rsatishingiz mumkin.
Quyidagi misol ham uchta 2-D massiv qaytaradi, lekin ular ustun bo‘ylab (axis=1) bo‘lingan.
Misol
2-D massivni ustunlar bo‘ylab uchta 2-D massivga bo‘ling.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
O‘zingiz sinab ko‘ring »
Muqobil yechim — hstack()ning teskarisi bo‘lgan hsplit()dan foydalanish
Misol
2-D massivni ustunlar bo‘ylab uchta 2-D massivga bo‘lish uchun hsplit() metodidan foydalaning.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
O‘zingiz sinab ko‘ring »
Eslatma: vstack() va dstack()ga o‘xshash muqobillar vsplit() va dsplit() ko‘rinishida mavjud.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
