Numpy.genfromtxt中的Ndarray是1D数组的1D数组,而不是2D

时间:2019-04-26 05:35:43

标签: python numpy

*已更改为较小的示例,因为StackEx无法显示281个长示例。

我已经使用np.genfromtxt将具有18列的8997行加载到ndarray中,但是它制作了具有8997行的一维数组。

data [0]打印第一行

data [0] [0]第一个元素

data [0,0]打印以下错误:

回溯(最近通话最近):   文件“”,第1行,位于     数据[0,0] IndexError:数组的索引过多

我可以将其转换为2D ndarray吗? genfromtxt为什么不创建2D naarray?

如果有帮助,

len(data [0])= 18,但data [0] .shape返回“()”。

因此,genfrontxt正在检测每行的每个元素,但将它们存储为一行。是否有一种优雅的方法可以将此1D数组转换为8997 x 18 2D数组?

编辑以供参考:

加载命令:

data = np.genfromtxt(filepath.replace('。dfn','.dat'),dtype = None,names = csvnames)

数据= np.genfromtxt(filepath.replace('。dfn','.dat'),dtype = None,名称= csvnames,分隔符=宽度)

我使用了两者,并得到了相同的ndarray。我输入了列名列表。使用固定宽度不会改变结果。我让函数确定数据类型,这很好。

数据属性

data.shape(8997,)

数据文件的第一行-(第一列是字符串值DATA)

DATA  190010.0  1284   4 190010 1783000 20170122   0 131.000035 -31.255325 119016.47 6535194.03  58.55  62.06  987.22  22.61  55076.69  10476.91   8155.08 57238.0957 57238.6536 58639.18 57795.78

ndarray的第一行->数据[0]

(b'DATA', 190010., 1284, 4, 190010, 1783000, 20170122,   0, 131.000035, -31.255325, 119016.47, 6535194.03, 58.55, 62.06, 987.22, 22.61, 17830.  , 133.71)

data.type

[('COMM', 'S4'), ('FLTLINE', '<f8'), ('Project', '<i4'), ('Flight', '<i4'), ('Line', '<i4'), ('Fid', '<i4'), ('YYYYMMDD', '<i4'), ('Bearing', '<i4'), ('Long', '<f8'), ('LATITUDE', '<f8'), ('EAST', '<f8'), ('NORTH', '<f8'), ('RadAlt', '<f8'), ('LasAlt', '<f8'), ('Press', '<f8'), ('Temp', '<f8'), ('GPSTime', '<f8'), ('GPSHt', '<f8')]

0 个答案:

没有答案
相关问题