2
모양이 (100,50)
인 일반 플로트 ndarray가 있습니다. 처음 두 열에는 예를 들어 'idx1'
및 'idx2'
, 나머지 열에는 'data'
등의 이름을 어떻게 지정할 수 있습니까?ndarray를 구조화 된 배열로 변환하는 방법은 무엇입니까?
모양이 (100,50)
인 일반 플로트 ndarray가 있습니다. 처음 두 열에는 예를 들어 'idx1'
및 'idx2'
, 나머지 열에는 'data'
등의 이름을 어떻게 지정할 수 있습니까?ndarray를 구조화 된 배열로 변환하는 방법은 무엇입니까?
view
메서드를 사용할 수 있습니다. 다음은 그 예 (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(...)
(예 : x
)으로 변경하면 y
은 (3,1)이되고 y['idx1']
은 모양 (3,1)이됩니다.
니스, 여분의 길이 - 1 축을 피하기 위해'ravel '사용에 대해 몰랐습니다. – askewchan