我使用此行读取文件
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, , , , ,
答案 0 :(得分:2)
您可以使用:
np.nan_to_num(np.genfromtxt('test.txt', delimiter=','))
其中np.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 downloaded here它没有'工作):
np.genfromtxt('test.txt', filling_values=0, delimiter=',')