我想知道是否有一种快速的方法来找到numpy矩阵中每一行最左边的非空值的索引。你知道吗
免得说我有这个:
data = np.array([[np.nan, np.nan, 10, 1],
[np.nan, 30, 50, np.nan],
[40, np.nan, np.nan, 5],
[np.nan, np.nan, np.nan, 10]])
我想分别返回10、30、40和10的索引,即2、1、0和3。你知道吗
下面的方法是有效的,但并不完全有效(例如,fn
函数中的循环速度很慢):
def fn(row):
for idx, v in enumerate(row):
if not np.isnan(v):
return idx
np.apply_along_axis(fn, 1, data)
用
np.isnan
获取非空布尔数组,然后用argmax(1)
获取每行中第一个索引,最后索引到输入数组-相关问题 更多 >
编程相关推荐