我爱编程python学习

numpy中的轴与转置

2018-06-21  本文已影响0人  跳蚤窝

在numpy的ndarray中(n维d的array),n维分别对应n个轴,每个轴拥有一个编号,分别为0,1,2.....,n。
如:

import numpy as np
arr = np.arange(16).reshape(2,2,2,2) # 4

其中arr为4维数组,拥有4个轴,轴编号为0、1、2、3

transpose,

tanspose 接受一个轴编号的元组作为参数,返回一个数组的视图(注意不是数组的拷贝)。

arrt1 = arr.transpose((1,0,2,3)).copy()  #交换0、1
arrt2 = arr.transpose((1,0,3,2)).copy()  #分别交换0、1,2、3

上面的代码把arr的第0、1轴进行了互换,tanspose()返回了一个视图,我们通过copy()(可以和python中的列表的copy()进行类比)来获得一份拷贝,以便比较。

swapaxes

上面arrt1的代码可以如下代码等效:

arrs = arr.swapaxes(0,1).copy

swapaxes直观多了,直接把第0、1轴进行了互换,但是对于arrt2的操作就无能为力了。当然,swapaxes 同样是返回一个视图,而不是一个拷贝。

上一篇下一篇

猜你喜欢

热点阅读