2
我有一個形狀爲(100,50)
的普通浮子。我怎樣才能將名稱分配給前兩列,即'idx1'
和'idx2'
,以及'data'
到其餘列。如何將ndarray轉換爲結構化數組?
我有一個形狀爲(100,50)
的普通浮子。我怎樣才能將名稱分配給前兩列,即'idx1'
和'idx2'
,以及'data'
到其餘列。如何將ndarray轉換爲結構化數組?
您可以使用view
方法。下面是一個例子,使用具有形狀的陣列(3,5),用於演示:
In [21]: x
Out[21]:
array([[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.],
[ 10., 11., 12., 13., 14.]])
In [22]: y = x.ravel().view(dtype=[('idx1', float), ('idx2', float), ('data', float, 3)])
In [23]: y['idx1']
Out[23]: array([ 0., 5., 10.])
In [24]: y['data']
Out[24]:
array([[ 2., 3., 4.],
[ 7., 8., 9.],
[ 12., 13., 14.]])
In [25]: y['data'][1]
Out[25]: array([ 7., 8., 9.])
注意y
是1 d陣列;它有形(3,)。如果您將轉換更改爲y = x.view(...)
(即不要ravel x
),則y
將具有(3,1),並且y['idx1']
將具有形狀(3,1)。
不錯,不知道如何使用'ravel'來避免額外的長度-1軸。 – askewchan 2013-04-07 00:04:02