I mają następujące numpy strukturalną tablicy:Dzielenie wartości pól tablicy numpy które są matryce do kolumny wektory
x = np.array([(22, 2, -1000000000.0, [1000,2000.0]), (22, 2, 400.0, [1000,2000.0])],
dtype=[('f1', '<i4'), ('f2', '<i4'), ('f3', '<f4'), ('f4', '<f4',2)])
Jak widać, pole 'F4' jest macierz:
In [63]: x['f4']
Out[63]:
array([[ 1000., 2000.],
[ 1000., 2000.]], dtype=float32)
My celem końcowym jest posiadanie tablicy strukturalnej numpy, która ma tylko wektory. Zastanawiałem się, jak podzielić "f4" na dwa pola ("f41" i "f42"), gdzie każde pole reprezentuje kolumnę macierzy.
In [67]: x
Out[67]:
array([(22, 2, -1000000000.0, 1000.0, 2000.0),
(22, 2, 400.0, 1000.0, 2000.0)],
dtype=[('f1', '<i4'), ('f2', '<i4'), ('f3', '<f4'), ('f41', '<f4'), ('f42', '<f4')])
Również się zastanawiać, czy to możliwe do osiągnięcia tego czasu, za pomocą operacji, które modyfikują układ na miejscu lub z minimalnym kopiowaniu danych pierwotnych.
Nice! Byłem świadomy np.view, ale nie wiedziałem, że możesz go użyć w ten sposób. – snowleopard