在numpy中重新排列轴?

2024-10-19 16:45:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像

>>> arr = np.random.rand(10, 20, 30, 40)
>>> arr.shape
(10, 20, 30, 40)

我想把它的轴换成任意的顺序,比如

>>> rearranged_arr = np.swapaxes(np.swapaxes(arr, 1,3), 0,1)
>>> rearranged_arr.shape
(40, 10, 30, 20)

有没有一个函数可以实现这一点,而不必把一堆np.swapaxes串在一起?你知道吗


Tags: 函数顺序nprandomarrshaperandswapaxes
2条回答

是的,您要查找的函数是np.moveaxis(a, source, destination)docs

用例的示例用法:

rearranged_arr = np.moveaxis(arr, [0, 1, 2, 3], [1, 3, 2, 0])
In [126]: arr = np.random.rand(10, 20, 30, 40)                                                               
In [127]: arr.transpose(3,0,2,1).shape                                                                       
Out[127]: (40, 10, 30, 20)

相关问题 更多 >