gpt4 book ai didi

python - -9999 作为 numpy.genfromtxt() 的缺失值

转载 作者:行者123 更新时间:2023-11-28 19:57:56 25 4
gpt4 key购买 nike

假设我有一个包含以下内容的哑文本文件:

Year    Recon   Observed
1505 162.38 23
1506 46.14 -9999
1507 147.49 -9999

-9999 用于表示缺失值(不要问)。

所以,我应该能够将其读入 Numpy 数组:

import numpy as np
x = np.genfromtxt("file.txt", dtype = None, names = True, missing_values = -9999)

并让我所有的小 -9999 变成 numpy.nan。但是,我得到:

>>> x
array([(1409, 112.38, 23), (1410, 56.14, -9999), (1411, 145.49, -9999)],
dtype=[('Year', '<i8'), ('Recon', '<f8'), ('Observed', '<i8')])

……这样不对……

我错过了什么吗?

最佳答案

不,你没有做错任何事。使用 missing_values 参数确实告诉 np.genfromtxt 相应的值应该被标记为“缺失/无效”。问题是只有当您使用 usemask=True 参数时才支持处理缺失值(我可能应该在 documentation 中更清楚地说明这一点,我的错)。

使用usemask=True,输出是一个掩码数组。您可以使用 .filled(np.nan) 方法将其转换为常规 ndarray,并将缺失值替换为 np.nan

不过要小心:如果您的列被检测为具有 int 数据类型,并且您尝试用 np.nan 填充其缺失值,您将不会达不到你的期望(np.nan 仅支持浮点列)。

关于python - -9999 作为 numpy.genfromtxt() 的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274709/

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