【发布时间】:2015-08-13 16:24:36
【问题描述】:
我是 NumPy 的新手。我有一个包含浮点值的二维 NumPy 数组。我希望在整个矩阵中获得大于某个值的 70% 的那些元素的索引,比如 t 。
output = [(1,2),(4,7),(7,1)]
表示 arr[1][2]、arr[4][7] 和 arr[7][1] 的值大于 70 t
使用 2 个循环来完成工作是一种相当简单的方法。完成它的最 Pythonic 方式是什么(列表理解等)?请指出任何重复项。谢谢!
【问题讨论】:
-
Numpy 的where 在这里听起来很相关,看看吧。
-
给出该示例案例的其余部分,包括您的循环。顺便说一句,对于
numpy,我们通常索引:arr[1,2],而不是arr[1][2]。 -
@hpaulj 抱歉,没明白你的意思。样例如 ?我只有一个想要遍历的二维数组。
-
注意:通常,计算实际索引是不必要的开销。我在这里看到的大多数对
where的调用都可以简单地删除而不会影响程序的行为,并且代码会运行得更快。
标签: python numpy multidimensional-array list-comprehension