gpt4 book ai didi

python - 忽略 nan 值并执行 numpy.polyval 的函数

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:20 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,您可以在其中为它提供一个 mxn 数组,其目标是遍历该数组并为每个值执行 numpy.polyval。数组将包含一些 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

谢谢你的帮助

最佳答案

像这样使用 bool 索引:

>>> 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.]])

关于python - 忽略 nan 值并执行 numpy.polyval 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com