python - genfromtxt dtype=None 未获取二维数组

标签 python numpy io genfromtxt

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

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/

相关文章:

python - 从文本字段创建一个屏蔽数组

io - 如何管理 Rust 结构中文件的所有权?

java - Vala 逐行读取文件

python - mpi4py 与进程和线程

python - 为什么 ipython Anaconda 无法识别我的 omdb 导入?

python - Pandas 在多行中拆分行

c++ - aio_read 和 read/EWOULDBLOCK 有什么区别?

python - 在 __getitem__ 中实现切片

python - 无法将 NumPy 数组转换为张量(不支持的对象类型 int)

python - 大 numpy 数组中的重复位