Paghahanap ng Array ng NumPy

搜索数组

您可以在数组中搜索(检索)某个值,然后返回获得匹配的索引。

要搜索数组,请使用 where() 方法。

Sample

查找值为 4 的索引:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)

I-run ang Sample

上例会返回一个元组:(array([3, 5, 6],)

意思就是值 4 出现在索引 3、5 和 6。

Sample

查找值为偶数的索引:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)

I-run ang Sample

Sample

查找值为奇数的索引:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 1)
print(x)

I-run ang Sample

搜索排序

有一个名为 searchsorted() 的方法,该方法在数组中执行二进制搜索,并返回将在其中插入指定值以维持搜索顺序的索引。

假定 searchsorted() Ang paraan na ito ay ginagamit para sa pagayos ng array.

Sample

Hanapin ang indeks kung saan dapat i-insert ang halaga 7:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)

I-run ang Sample

Halimbawa ng Paliwanag:Dapat i-insert ang bilang 7 sa indeks 1 upang mapanatili ang pagkakasunod-sunod.

Ang paraan na ito ay nagsisimula mula sa kaliwa, at ibinabalik ang unang indeks kung saan ang bilang 7 ay hindi na mas mataas kaysa susunod na halaga.

Magsimula sa Kanan

Sa pamamagitan ng default, ibinabalik ang pinakamalapit na indeks sa kanan, ngunit maaari naming magbigay ng side='right'upang ibalik ang pinakamalapit na indeks sa kanan.

Sample

Hanapin ang indeks kung saan dapat i-insert ang halaga 7 mula sa kanan:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)

I-run ang Sample

Halimbawa ng Paliwanag:Dapat i-insert ang bilang 7 sa indeks 2 upang mapanatili ang pagkakasunod-sunod.

Ang paraan na ito ay nagsisimula mula sa kanan, at ibinabalik ang unang indeks kung saan ang bilang 7 ay hindi na mas mababa sa susunod na halaga.

Maraming Halaga

Para hanapin ang ilang halaga, gamitin ang array na may ilang natukoy na halaga.

Sample

Hanapin ang indeks kung saan dapat i-insert ang halaga 2, 4 at 6:

import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)

I-run ang Sample

Ang ibinabalik na halaga ay isang array:[1 2 3] May tatlong indeks, kung saan ang 2, 4, 6 ay i-insert sa orihinal na array upang mapanatili ang pagkakasunod-sunod.