相关疑难解决方法(0)

在numpy数组中转发NaN值的最有效方法

示例问题

举个简单的例子,考虑arr如下定义的numpy数组:

import numpy as np
arr = np.array([[5, np.nan, np.nan, 7, 2],
                [3, np.nan, 1, 8, np.nan],
                [4, 9, 6, np.nan, np.nan]])
Run Code Online (Sandbox Code Playgroud)

arr在控制台输出中看起来像这样:

array([[  5.,  nan,  nan,   7.,   2.],
       [  3.,  nan,   1.,   8.,  nan],
       [  4.,   9.,   6.,  nan,  nan]])
Run Code Online (Sandbox Code Playgroud)

我现在想逐行'向前填充' nan数组中的值arr.我的意思是用nan左边最近的有效值替换每个值.期望的结果如下所示:

array([[  5.,   5.,   5.,  7.,  2.],
       [  3.,   3.,   1.,  8.,  8.],
       [  4.,   9.,   6.,  6.,  6.]])
Run Code Online (Sandbox Code Playgroud)

到目前为止尝试过

我尝试过使用for循环:

for row_idx in range(arr.shape[0]):
    for col_idx in range(arr.shape[1]): …
Run Code Online (Sandbox Code Playgroud)

python arrays performance numpy pandas

35
推荐指数
5
解决办法
1万
查看次数

标签 统计

arrays ×1

numpy ×1

pandas ×1

performance ×1

python ×1