小编典典

numpy.where() 详细的分步说明/示例

all

有人可以提供一维和二维数组的分步注释示例吗?


阅读 65

收藏
2022-08-01

共1个答案

小编典典

在摆弄了一段时间之后,我想出了一些事情,并将它们发布在这里,希望对其他人有所帮助。

直观地说,np.where就像问“ 告诉我在这个数组的哪个位置,条目满足给定条件 ”。

>>> a = np.arange(5,10)
>>> np.where(a < 8)       # tell me where in a, entries are < 8
(array([0, 1, 2]),)       # answer: entries indexed by 0, 1, 2

它还可以用于获取数组中满足条件的条目:

>>> a[np.where(a < 8)] 
array([5, 6, 7])          # selects from a entries 0, 1, 2

a是一个二维数组时,np.where()返回一个行 idx 的数组和一个 col idx 的数组:

>>> a = np.arange(4,10).reshape(2,3)
array([[4, 5, 6],
       [7, 8, 9]])
>>> np.where(a > 8)
(array(1), array(2))

与 1d 情况一样,我们可以np.where()用来获取 2d 数组中满足条件的条目:

>>> a[np.where(a > 8)] # selects from a entries 0, 1, 2

数组([9])


请注意,当a为 1d 时,np.where()仍返回行 idx 的数组和 col idx 的数组,但列的长度为 1,因此后者是空数组。

2022-08-01