尝试使用np.genfromtxt读取.Data文件
a = np.genfromtxt("u.data", dtype = [int, int, int, int], delimiter = '\t')
输出是一个numpy void数组。但是,如果我未指定数据类型,则输出为普通数组。我想知道出了什么问题。我还应该提到,如果我未指定数据类型,那么numpy会将所有数据自动视为浮点数。
答案 0 :(得分:1)
加载简单csv的各种方法
In [148]: txt = """1,2,3
...: 4,5,6"""
默认浮点数:
In [149]: np.genfromtxt(txt.splitlines(), delimiter=',')
Out[149]:
array([[1., 2., 3.],
[4., 5., 6.]])
multiple int dtype-生成结构化数组(请阅读文档):
In [150]: np.genfromtxt(txt.splitlines(), delimiter=',',dtype=[int,int,int])
Out[150]:
array([(1, 2, 3), (4, 5, 6)],
dtype=[('f0', '<i8'), ('f1', '<i8'), ('f2', '<i8')])
混合使用dtypes(更常见的情况):
In [152]: np.genfromtxt(txt.splitlines(), delimiter=',',dtype=[int,float,'U10'])
Out[152]:
array([(1, 2., '3'), (4, 5., '6')],
dtype=[('f0', '<i8'), ('f1', '<f8'), ('f2', '<U10')])
所有整数-类似于浮点格式的2d数组:
In [153]: np.genfromtxt(txt.splitlines(), delimiter=',',dtype=int)
Out[153]:
array([[1, 2, 3],
[4, 5, 6]])
genfromtxt
文档有点长,但是值得完整阅读!