我用这一行读取文件
data_train = np.genfromtxt(filename, delimiter=' ', autostrip=True, dtype=float, missing_values="", filling_values='0')
由于列的值可能不共享相同的类型,所以我得到了一个一维数组。如果我使用dtype=None
也是一样)。但是,这些值要么是整数,要么是浮点值,要么缺少值。
我可以解决这个问题并获得一个2d数组吗?
例如:
1, 2, 3, 4, 3.3, , 2.2, 1
1.1, 2.2, 4, , , , ,
您可以使用:
np.nan_to_num(np.genfromtxt('test.txt', delimiter=','))
其中np.nan_to_num()
通过0
转换将在您有丢失数据的地方创建的nan
条目,例如:
array([[ 1. , 2. , 3. , 4. , 3.3, 0. , 2.2, 1. ],
[ 1.1, 2.2, 4. , 0. , 0. , 0. , 0. , 0. ]])
编辑:正如@unsubu、@Warren Weckesser和下面的讨论所澄清的那样,根据你的系统,你可以简单地做(对我来说,在这里下载的Windows 7 64位、Python 2.7.8 64位和NumPy 1.9.0上,它不起作用):
np.genfromtxt('test.txt', filling_values=0, delimiter=',')