我正在尝试在二维数组中找到超过特定阈值的条目。各列的阈值由一维数组给出。举例来说,
[[1, 2, 3],
[4, 5, 6],
[2, 0, 4]]
是二维数组,我想看看列中的值是否大于
[2, 1, 3]
所以运行操作的输出应该是
[[False, True, False]
[True, True, True],
[False, False, True]]
谢谢!
答案 0 :(得分:3)
好吧,假设示例中有错误,我只会这样做:
import numpy as np
A = np.array([[1, 2, 3],[4, 5, 6],[2, 0, 4]])
T = np.array([2, 1, 3])
X = A > T
哪个给出了
array([[False, True, False],
[ True, True, True],
[False, False, True]], dtype=bool)
答案 1 :(得分:0)
我认为您的示例中可能存在不一致之处(例如,2> 1为True,但2> 4为True) - 您能澄清一下吗?
假设您想知道,对于每一行,第一个列表中哪些值的列大于您提供的[2,1,3]
列表,我建议如下:
import numpy as np
tmp = [[1, 2, 3],
[4, 5, 6],
[2, 0, 4]]
output = [ np.less([2, 1, 3], tmp[i]) for i in range(len(tmp))]
同样,请尝试greater
或greater_equal
或less_equal
获取您之后的结果:
http://docs.scipy.org/doc/numpy/reference/routines.logic.html