函数忽略nan值并执行聚乙烯

2024-04-20 13:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个函数,在其中向它提供一个mxn数组,它的目标是遍历数组并执行努比·波利瓦尔对于每个值。数组将包含一些nan值,因此我希望函数以与原始数组相同的顺序返回nan值。 到目前为止,我的职责是:

def polyval_NaN(p,data):
    m,n = data.shape
    data2 = data
    for i in np.arange(1,m):
        for j in np.arange(1,n):
            if np.isnan(data2[i,j]) == False:
                data2[i,j] = np.polyval(p,data[i,j])
    return data2

谢谢你的帮助


Tags: 函数in目标fordata顺序defnp
1条回答
网友
1楼 · 发布于 2024-04-20 13:29:04

像这样使用布尔索引:

>>> import numpy as np
>>> 
>>> p = np.array((4,5,3))
>>> a = np.arange(12.).reshape(3,4)
>>> a.ravel()[[2,5,7]] = np.nan
>>> a
array([[ 0.,  1., nan,  3.],
       [ 4., nan,  6., nan],
       [ 8.,  9., 10., 11.]])
>>> 
>>> result = np.full_like(a, np.nan)
>>> good = ~np.isnan(a)
>>> result[good] = np.polyval(p, a[good])
>>> 
>>> result
array([[  3.,  12.,  nan,  54.],
       [ 87.,  nan, 177.,  nan],
       [299., 372., 453., 542.]])

相关问题 更多 >