NumPy massivlarini filtrlash
Massivlarni filtrlash
Mavjud massivdan ba’zi elementlarni olib, ulardan yangi massiv yaratish filtrlash deb ataladi.
NumPyda massiv boolean indekslar ro‘yxati yordamida filtrlanadi.
Boolean indekslar ro‘yxati — massivdagi indekslarga mos keladigan boolean qiymatlar ro‘yxati.
Agar indeksdagi qiymat True bo‘lsa, o‘sha element filtrlangan massivga kiritiladi, agar o‘sha indeksdagi qiymat False bo‘lsa, element filtrlangan massivdan chiqarib tashlanadi.
Misol
0 va 2-indekslardagi elementlardan massiv yarating:
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True, False, True, False]
newarr = arr[x]
print(newarr)
O‘zingiz sinab ko‘ring »
Yuqoridagi misol [41, 43] qaytaradi, nega?
Chunki yangi massiv faqat filtr massivida True qiymati turgan joylardagi qiymatlarni o‘z ichiga oladi, bu holatda 0 va 2-indekslar.
Filtr massivini yaratish
Yuqoridagi misolda True va False qiymatlarini kodga qo‘lda yozdik, lekin odatda filtr massivi shartlar asosida yaratiladi.
Misol
Faqat 42 dan katta qiymatlarni qaytaradigan filtr massivini yarating:
import numpy as np
arr = np.array([41, 42, 43, 44])
# Create an empty list
filter_arr = []
# go through each element in arr
for element in arr:
# if the element is higher than 42, set the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
O‘zingiz sinab ko‘ring »
Misol
Asl massivdan faqat juft elementlarni qaytaradigan filtr massivini yarating:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
# Create an empty list
filter_arr = []
# go through each element in arr
for element in arr:
# if the element is completely divisble by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
O‘zingiz sinab ko‘ring »
Filtrni to‘g‘ridan-to‘g‘ri massivdan yaratish
Yuqoridagi misol NumPyda juda keng tarqalgan vazifa bo‘lib, NumPy uni hal qilishning qulay usulini taklif etadi.
Shartimizda iteratsiya qilinadigan o‘zgaruvchi o‘rniga massivning o‘zini to‘g‘ridan-to‘g‘ri qo‘yishimiz mumkin va u biz kutgandek ishlaydi.
Misol
Faqat 42 dan katta qiymatlarni qaytaradigan filtr massivini yarating:
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr > 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
O‘zingiz sinab ko‘ring »
Misol
Asl massivdan faqat juft elementlarni qaytaradigan filtr massivini yarating:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
filter_arr = arr % 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
