Tôi có mảng cấu trúc NumPy sau:tách giá trị trường mảng NumPy đó là ma trận vào cột vector
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)])
Như bạn thấy, lĩnh vực 'f4' là một ma trận:
In [63]: x['f4']
Out[63]:
array([[ 1000., 2000.],
[ 1000., 2000.]], dtype=float32)
My mục tiêu cuối cùng là có một mảng có cấu trúc gọn gàng chỉ có vectơ. Tôi đã tự hỏi làm thế nào để tách 'f4' thành hai lĩnh vực ('f41' và 'f42') trong đó mỗi lĩnh vực đại diện cho cột của ma trận.
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')])
Ngoài ra tôi đã tự hỏi liệu có thể đạt được điều này khi sử dụng các thao tác sửa đổi mảng tại chỗ hoặc sao chép tối thiểu dữ liệu gốc.
Tuyệt vời! Tôi đã nhận thức được np.view nhưng không biết bạn có thể sử dụng nó như thế này. – snowleopard