All.给定一个2D numpy数组,如何在不使用循环的情况下找出每行第一个正元素的行和列索引。例如,给定数据
data = np.array([[1.0, -2.0, 3.0,3],
[0.0, 1.5, -2.0,5],
[-1.0, -2.0, -3.0,-5]])
字符串
如何找到每行每个正元素的索引。它期望得到2个1d索引作为答案,row_idx=[0,1]
,col_idx=[0,1]
对应于数据中的元素[1,1.5]
。任何人都可以在这方面有所启发,提前感谢!
我试过用
import numpy as np
print(data)
row_idx = np.any(data>0, axis=1)
col_idx = np.argmax(data>0,axis=1)
print('row indices: ', row_idx)
print('col indices: ', col_idx)
print(data[row_idx,col_idx])
型
但得不到正确答案。
2条答案
按热度按时间xuo3flqw1#
np.any
返回boolean
掩码,而不是索引。您可以使用np.where
直接获取索引。字符串
wnvonmuf2#
你几乎就在那里了,你需要过滤掉
argmax
的结果,以删除没有值大于0的情况:字符串
输出量:
型