我正在使用这一行来读取文件
data_train = np.genfromtxt(filename, delimiter=' ', autostrip=True, dtype=float, missing_values="", filling_values='0')
由于列的值可能不共享相同的类型,因此我得到一个一维数组。如果我使用dtype=None
,则相同)。但是,这些值要么是整数,要么是 float ,要么是缺失值。
我可以解决这个问题并得到一个二维数组吗?
例如:
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()
转换 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=',')
关于python - genfromtxt dtype=None 未获取二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25814893/