NumPy massivlarida qidirish


ULASHISH

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!