对numpy.transpose的理解

numpy.transpose

p = numpy.transpose(a, axes=None)

作用:颠倒或重新排列数组的轴,返回修改后的数组。
参数

  • a : 类数组(array_like)对象。
  • axes: 元组或int列表,为可选参数。假设a的维数为 n n n,如果指定axes,那么元组或列表的内容必须为0,1,2,…, n n n-1 这 n n n个整数的一种排列。返回的 n n n维数组p的 i i i轴即对应原axes[ i i i]轴。如果不指定,默认为[n-1, …,1,0]。

返回值 n n n维数组(ndarray)。
注意:如果输入a为一维数组,则仍返回原数组

# 例1
x = numpy.arange(8).reshape((2,4))
p = numpy.transpose(x)     #  不指定则axes默认为[1,0]
# x [[0 1 2 3]        p  [[0 4]
#	 [4 5 6 7]]			  [1 5]
#						  [2 6]
#						  [3 7]]

# 例2
x = numpy.arange(8).reshape(2,2,2)
p = numpy.transpose(x, [1,2,0])
# x[[[0 1]			 P [[[0 4]
#    [2 3]]              [1 5]]
#	[[4 5]				[[2 6]
#    [6 7]]]			 [3 7]]]

“返回的 n n n维数组p的 i i i轴即对应axes[ i i i]轴”,这句话怎么理解呢?
如上例1,x的shape是(2,4),axes=[1,0]。所以在变换后的数组p中,0坐标轴对应于axes[0]轴也即 1轴,1坐标轴对应于axes[1]也即 0轴。就相当于0轴和1轴对调,类似矩阵的转置 ( i , j ) → ( j , i ) (i,j)→(j,i) (i,j)(j,i)。例2同理,由 ( i , j , k ) → ( j , k , i ) (i,j,k)→(j,k,i) (i,j,k)(j,k,i)
如下图,例1中6的位置从(1,2)转换到(2,1)。例2中6的位置从(1,1,0)转换为(1,0,1)。
transpose
每一个位置上的数据都做同样的变换,得到数组p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值