我有一个np.array
形状的(15,3)
。
final_vals = array([[ 37, -84, -143],
[ 29, 2, -2],
[ -18, -2, 0],
[ -3, 6, 0],
[ 361, -5, 2],
[ -23, 4, 8],
[ 0, -1, 0],
[ -1, 1, 0],
[ 62, 181, 83],
[-193, -14, -2],
[ 42, -154, -92],
[ 16, -13, 1],
[ -10, -3, 0],
[-299, 244, 110],
[ 223, -237, -110]])
我试图找到元素值介于-1和1之间的行。在打印在第6行和第7行上方的数组中是目标/结果行。
我试过了,
result_idx = np.where(np.logical_and(final_vals>=-1, final_vals<=1))
又回来了,
result_idx = (array([ 2, 3, 6, 6, 6, 7, 7, 7, 11, 12], dtype=int64),
array([2, 2, 0, 1, 2, 0, 1, 2, 2, 2], dtype=int64))
我希望我的程序只返回行号
最佳答案
您可以获取所有元素的绝对值,并检查哪些行的元素小于或等于1
。然后使用np.flatnonzero
查找所有列都满足条件的索引:
np.flatnonzero((np.abs(final_vals) <= 1).all(axis=1))
输出
array([6, 7], dtype=int64)
关于python - 如何在给定的numpy 2D数组中查找值介于-1和1之间的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54556450/