使用 numpy.genfromtxt 填充缺失值

2024-04-12

尽管前面的问题提出了建议:

-9999 作为 numpy.genfromtxt() 的缺失值 https://stackoverflow.com/questions/12274709/9999-as-missing-value-with-numpy-genfromtxt

使用 genfromtxt 导入 numpy 中缺失值的 csv 数据 https://stackoverflow.com/questions/3761103/using-genfromtxt-to-import-csv-data-with-missing-values-in-numpy

我仍然无法处理以缺失值结尾的文本文件,

a.txt:

1 2 3
4 5 6
7 8

我尝试过多种选择的安排missing_values, filling_values并且无法让它工作:

import numpy as np

sol = np.genfromtxt("a.txt", 
                    dtype=float,
                    invalid_raise=False, 
                    missing_values=None,
                    usemask=True,
                    filling_values=0.0)
print sol

我想得到的是:

[[1.0 2.0 3.0]
 [4.0 5.0 6.0]
 [7.0 8.0 0.0]]

但我得到的是:

/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py:1641: ConversionWarning: Some errors were detected !
    Line #3 (got 2 columns instead of 3)
  warnings.warn(errmsg, ConversionWarning)
[[1.0 2.0 3.0]
 [4.0 5.0 6.0]]

Using pandas http://pandas.pydata.org/:

import pandas as pd

df = pd.read_table('data', sep='\s+', header=None)
df.fillna(0, inplace=True)
print(df)
#    0  1  2
# 0  1  2  3
# 1  4  5  6
# 2  7  8  0

pandas.read_table将丢失的数据替换为NaNs。你可以替换那些NaNs 与一些其他值使用df.fillna.

df is a pandas.DataFrame。您可以使用以下命令访问底层 NumPy 数组df.values:

print(df.values)
# [[ 1.  2.  3.]
#  [ 4.  5.  6.]
#  [ 7.  8.  0.]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 numpy.genfromtxt 填充缺失值 的相关文章

随机推荐