![](/img/trans.png)
[英]Is there any possibility to convert recarray to ndarray and change ndim?
[英]Convert last dimension of ndarray to tuple/recarray
如果有人可以幫忙解決這個問題,我會非常感激,因為這讓我有點瘋狂了幾個小時!
我有一個ndarray如下:
array([[[0, 0],
[0, 2],
[0, 4]],
[[1, 0],
[1, 2],
[1, 4]]])
我想將其轉換為記錄數組:
array([[(0, 0),
(0, 2),
(0, 4)],
[(1, 0),
(1, 2),
(1, 4)]],
dtype=[('x', '<i4'), ('y', '<i4')])
你可以簡單地使用.view
來“改變” .reshape
和.reshape
來“刪除”最后一個維度:
>>> import numpy as np
>>> arr = np.array([[[0, 0], [0, 2], [0, 4]],
... [[1, 0], [1, 2], [1, 4]]])
>>> newarr = arr.view(dtype=np.dtype([('x', 'i4'), ('y', 'i4')]))
>>> newarr = newarr.reshape(newarr.shape[:-1])
>>> newarr
array([[(0, 0), (0, 2), (0, 4)],
[(1, 0), (1, 2), (1, 4)]],
dtype=[('x', '<i4'), ('y', '<i4')])
請注意,你必須小心.view
,硬編碼dtype在這里可能不是“安全”。 但您可以簡單地重用當前的dtype:
>>> newarr = arr.view(dtype=np.dtype([('x', arr.dtype), ('y', arr.dtype)]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.