missing_values与genfromtxt不兼容

1 投票
1 回答
870 浏览
提问于 2025-04-18 17:27

我正在尝试替换一个csv文件中的缺失值,在我的情况下,这些缺失值是用一个特定的字符串来表示的。我是这样做的:

data = np.genfromtxt(filename, delimiter=',', autostrip=True, dtype=float, missing_values="ab", filling_values=0.0)  

这里的字符串 "ab" 只是一个例子,它可以是我用来标识缺失值的任何字符串。不过,当我把csv文件保存到磁盘时,我看到的是nan,而不是零。

1 个回答

1

这是一个错误,只要 filling_value 不是 0,在 numpy 1.8.1 版本中就会正常工作:

In [40]:

%%file temp.txt
1,2,3,4,ab
ab,1,2,2,4
Overwriting temp.txt
In [41]:

data = np.genfromtxt('temp.txt', delimiter=',', 
                     autostrip=True, dtype=float, missing_values="ab", filling_values=0.01)  
In [42]:

data
Out[42]:
array([[ 1.  ,  2.  ,  3.  ,  4.  ,  0.01],
       [ 0.01,  1.  ,  2.  ,  2.  ,  4.  ]])

撰写回答