numpy 在一列上应用"where"?


[[11.  5.]
[24.  6.]
[39. 12.]
[14.  1.]
[25. 12.]]

这是我的矩阵,现在我想对它应用以下条件:10<a<15但仅限于第一列

因此,我想要一个包含索引的数组[0.3.]

我用";其中";失败,numpy将其应用于两列

第一列是a[:, 0]np.flatnonzeronp.nonzero的一个版本(它是只有一个参数的where(,它返回一个平面数组,而不是一个索引元组。

你可以做一些类似的事情

mask = (10 < a[:, 0]) & (a[:, 0] < 15)
idx = np.flatnonzero(mask)

另一种方式是

idx, = np.nonzero(mask)

甚至

idx, = np.where(mask)

注意最后两个例子中idx后面的逗号,它触发了参数拆包。

最新更新