NumPy massivlarida qidirish
Massivlarda qidirish
Massivdan ma’lum bir qiymatni qidirib, mos kelgan indekslarni qaytarishingiz mumkin.
Massivda qidirish uchun where() metodidan foydalaning.
Misol
Qiymati 4 bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)
O‘zingiz sinab ko‘ring »
Yuqoridagi misol tuple qaytaradi: (array([3, 5, 6],)
Bu 4 qiymati 3, 5 va 6-indekslarda mavjudligini bildiradi.
Misol
Qiymatlari toq bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([10, 14, 93, 41, 8, 7])
x = np.where(arr%2 == 1)
print(x)
O‘zingiz sinab ko‘ring »
Misol
Qiymatlari juft bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([10, 14, 93, 41, 8, 7])
x = np.where(arr%2 == 0)
print(x)
O‘zingiz sinab ko‘ring »
Saralangan massivda qidirish
searchsorted() deb nomlangan metod mavjud: u massivda ikkilik qidiruvni (binary search) bajaradi va tartib saqlanib qolishi uchun ko‘rsatilgan qiymat qo‘yilishi kerak bo‘lgan indeksni qaytaradi.
searchsorted() metodi saralangan massivlarda ishlatiladi deb hisoblanadi.
Misol
7 qiymati qo‘yilishi kerak bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)
O‘zingiz sinab ko‘ring »
Misol izohi: saralash tartibi saqlanib qolishi uchun 7 soni 1-indeksga qo‘yilishi kerak.
Metod qidiruvni chapdan boshlaydi va 7 soni keyingi qiymatdan katta bo‘lmay qolgan birinchi indeksni qaytaradi.
O‘ng tomondan qidirish
Standart holatda eng chapdagi indeks qaytariladi, lekin uning o‘rniga eng o‘ngdagi indeksni qaytarish uchun side='right'ni berishimiz mumkin.
Misol
O‘ngdan boshlab, 7 qiymati qo‘yilishi kerak bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)
O‘zingiz sinab ko‘ring »
Misol izohi: saralash tartibi saqlanib qolishi uchun 7 soni 2-indeksga qo‘yilishi kerak.
Metod qidiruvni o‘ngdan boshlaydi va 7 soni keyingi qiymatdan kichik bo‘lmay qolgan birinchi indeksni qaytaradi.
Bir nechta qiymat
Bittadan ortiq qiymatni qidirish uchun ko‘rsatilgan qiymatlardan iborat massivdan foydalaning.
Misol
2, 4 va 6 qiymatlari qo‘yilishi kerak bo‘lgan indekslarni toping:
import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)
O‘zingiz sinab ko‘ring »
Qaytariladigan qiymat — [1 2 3] massivi bo‘lib, u tartib saqlanishi uchun asl massivda 2, 4, 6 qo‘yilishi kerak bo‘lgan uchta indeksni o‘z ichiga oladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
