python - 查找满足条件的 2D numpy 数组的索引

标签 python arrays numpy matrix

我有一个大的 2D numpy 数组,想在其中找到满足条件的 1D 数组的索引:例如,至少有一个大于给定阈值 x 的值。

我已经可以通过以下方式做到这一点,但是否有更短、更有效的方式来做到这一点?

import numpy

a = numpy.array([[1,2,3,4,5], [1,2,3,4,20], [1,2,2,4,5]])

indices = []
i = 0
x = 10
for item in a:
    if any(j > x for j in item):
        indices.append(i)
    i += 1

print(indices) # gives [1]

最佳答案

您可以使用 numpy 的内置 bool 运算:

import numpy as np
a = np.array([[1,2,3,4,5], [1,2,3,4,20], [1,2,2,4,5]])

indices = np.argwhere(np.any(a > 10, axis=1))

关于python - 查找满足条件的 2D numpy 数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56240706/

相关文章:

python - 为什么我的 lambda 函数在使用像 filter() 和 map() 这样的函数时不返回任何值?

javascript - 将数据从多个输入推送到状态数组

java - 如何改变数组的长度

python - 带权重的 Xarray 滚动平均值

python - 如何描述两个字典的比率的笛卡尔乘法?

python - 使用 Snap7 为 PLC 制作可执行的 python 程序

python - 在 pandas 中按元素连接行内容

python - Google App Engine 递归 ndb.StructuredProperty

arrays - 插入到具有复合类型数组的表中

python - 我怎么知道我的变量是什么类型?