Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将一个或多个列表中的元素替换为列表nan';在蟒蛇3中的位置是什么?_Python_Numpy - Fatal编程技术网

Python 如何将一个或多个列表中的元素替换为列表nan';在蟒蛇3中的位置是什么?

Python 如何将一个或多个列表中的元素替换为列表nan';在蟒蛇3中的位置是什么?,python,numpy,Python,Numpy,我是python的新手,我想要以下方面的最终结果: a = [1,2,3,np.nan,4,6,8,np.nan,5,3,7] b = [np.nan,2,3,5,7,np.nan,6,2,6,9] for i in np.arange(0,12,1): if a[i] == np.nan or b[i]==np.nan: a[i] = np.nan b[i] =np.nan 但它不起作用。 非常感谢您的建议这里有一个解决方案: a = [np.na

我是python的新手,我想要以下方面的最终结果:

a = [1,2,3,np.nan,4,6,8,np.nan,5,3,7]
b = [np.nan,2,3,5,7,np.nan,6,2,6,9]

for i in np.arange(0,12,1):
    if a[i] == np.nan or b[i]==np.nan:
        a[i] = np.nan
        b[i] =np.nan

但它不起作用。 非常感谢您的建议这里有一个解决方案:

a = [np.nan, 2,3,np.nan, 4, 6, np.nan, np.nan,5,3,7]
b = [np.nan,2,3,np.nan,7,np.nan,np.nan,2,6,9]

您正在使用numpy,那么为什么不使用numpy阵列呢

for i in range(min(len(a), len(b))):
    if np.isnan(a[i]) or np.isnan(b[i]):
        a[i] = np.NaN
        b[i] = np.NaN
        
print(a)
# [nan, 2, 3, nan, 4, nan, 8, nan, 5, 3, 7]

print(b)
# [nan, 2, 3, nan, 7, nan, 6, nan, 6, 9]

我知道这与OP的“预期输出”不同,但根据他们的解释,我认为他们的输出中有一个bug。

欢迎来到StackOverflow。请考虑添加一个简短的解释,说明为什么您的代码工作,或为什么OP的代码不。这有助于社区了解您所写的内容。
a, b = map(np.array, [a, b])
l = min(a.size, b.size)
# Get a mask of NaN cells
m = np.isnan(a[:l]) | np.isnan(b[:l])
# Set to NaN based on the mask
a[:l][m] = np.nan
b[:l][m] = np.nan
a
# array([nan,  2.,  3., nan,  4., nan,  8., nan,  5.,  3.,  7.])

b
# array([nan,  2.,  3., nan,  7., nan,  6., nan,  6.,  9.])
if len(a) > len(b):
    for i, element in enumerate(b):
        if np.isnan(element) or np.isnan(a[i]):
            a[i] = np.nan
            b[i] = np.nan
else:
    for i, element in enumerate(a):
        if np.isnan(element) or np.isnan(b[i]):
            a[i] = np.nan
            b[i] = np.nan