2

我正在使用这一行来读取文件

data_train = np.genfromtxt(filename, delimiter=' ', autostrip=True, dtype=float, missing_values="", filling_values='0')

由于列的值可能不共享相同的类型,我得到一个一维数组。如果我使用相同dtype=None)。但是,这些值可以是整数、浮点数或缺失值。

我可以解决这个问题并获得一个二维数组吗?

例如:

1, 2, 3, 4, 3.3, , 2.2, 1  
1.1, 2.2, 4, , , , ,
4

1 回答 1

3

您可以使用:

np.nan_to_num(np.genfromtxt('test.txt', delimiter=','))

wherenp.nan_to_num()转换nan将在缺少数据的地方创建的条目0,获取您的示例:

array([[ 1. ,  2. ,  3. ,  4. ,  3.3,  0. ,  2.2,  1. ],
       [ 1.1,  2.2,  4. ,  0. ,  0. ,  0. ,  0. ,  0. ]])

编辑:正如@unutbu、@Warren Weckesser 和在下面的讨论中所澄清的那样,根据您的系统,您可以简单地执行(对我来说,在 Windows 7 64 位、Python 2.7.8 64 位和NumPy 1.9.0 上下载这里它没有不工作):

np.genfromtxt('test.txt', filling_values=0, delimiter=',')
于 2014-09-12T19:08:00.473 回答