我将相当大的输入文件加载到Numpy数组中(30列,超过10k行)。数据仅包含浮点数。为了简化数据处理,我想命名列并使用人类可读的名称访问它们。 AFAIK它只能使用结构化/记录数组。但是,如果我是对的,当我使用结构化数组时,我会丢失一些信息。例如:
x = np.array([(1.0, 2), (3.0, 4), (11, 22)], dtype='float64')
y = np.array([(1.0, 2), (3.0, 4), (11, 22)], dtype=[('x', float), ('y', float), ('z', float)])
两个数组都包含相同的数据和相同的dtype。可以使用列名访问y:
yIn [155]: y['x']
Out[155]: array([ 1., 3., 11.])
不幸的是,当我使用结构化数组时,我松散(或者我得到了错误的印象?)这些基本属性。 x和y有不同的形状,y不能转置等。
In [160]: x
Out[160]:
array([[ 1., 2.],
[ 3., 4.],
[11., 22.]])
In [161]: y
Out[161]:
array([( 1., 2.), ( 3., 4.), (11., 22.)],
dtype=[('x', '<f8'), ('y', '<f8')])
In [162]: x.shape
Out[162]: (3, 2)
In [163]: y.shape
Out[163]: (3,)
In [164]: x.T
Out[164]:
array([[ 1., 3., 11.],
[ 2., 4., 22.]])
In [165]: y.T
Out[165]:
array([( 1., 2.), ( 3., 4.), (11., 22.)],
dtype=[('x', '<f8'), ('y', '<f8')])
是否可以继续使用&#34;常规2D Numpy阵列&#34;并使用他们的名字访问列?