【发布时间】:2018-07-02 19:22:35
【问题描述】:
我有一个 numpy 数组,其中包含很多 NaN 值,并且在某些行中是非 NA 值。
现在,我想获取具有非 NA 值(即数值)的行的所有索引,并希望从不同的 numpy 数组中提取这些特定行索引的值。所以我们有:
Y_test,一个长度为 698 的 np 数组,在某些行上有数值
Y_test
array([ nan, 13., nan, 10., nan])
Y_pred,一个长度为 698 的 np 数组,每行都有数值
Y_pred
array([ 0.96, 0.57, 0.33, 0.43, 0.83])
我只想在 np_array1 中具有数值的行的索引上提取 np_array2 的数值。
例如:
array([ 0.57, 0.43])
我这样做是为了计算 Y_test 的非 NA 行与 Y_pred 的相应行之间的误差。
谁能帮帮我?
【问题讨论】:
-
请发布示例数组,以便用户演示您的问题的解决方案。
-
只需创建一个掩码
mask = ~np.isnan(array_with_nans)并使用array_with_nans[mask]、array_without_nans[mask]为您的数组建立索引。如果您确实需要索引:np.flatnonzero(mask)。如果您还想排除+/-inf,请使用mask = np.isfinite(array_with_nans)