python一维数组转置_python矩阵转置

python中的矩阵转置

首先,数据应该是np.asarray型,

然后,使用numpy.transpose来操作。

transpose方法只能处理高维数组(>1),如果处理一维数组会报错;

对于二维数组:

data1 = np.arange(4).reshape((2,2))

print(data1)

>>[[0 1]

[2 3]]

data1 = np.transpose(data1)

print(data1)

>>[[0 2]

[1 3]]

对于三维数组:(3,2,2)的数组对应转置为(2,2,3)

data1 = np.arange(12).reshape((3,2,2))

print(data1)

>>[[[ 0 1]

[ 2 3]]

[[ 4 5]

[ 6 7]]

[[ 8 9]

[10 11]]]

data1 = np.transpose(data1)

print(data1)

>>[[[ 0 4 8]

[ 2 6 10]]

[[ 1 5 9]

[ 3 7 11]]]

对于四维数组:(2,3,2,2)的数组对于转置为(2,2,3,2)

data1 = np.arange(24).reshape((2,3,2,2))

print(data1)

>>[[[[ 0 1]

[ 2 3]]

[[ 4 5]

[ 6 7]]

[[ 8 9]

[10 11]]]

[[[12 13]

[14 15]]

[[16 17]

[18 19]]

[[20 21]

[22 23]]]]

data1 = np.transpose(data1)

print(data1)

>>[[[[ 0 12]

[ 4 16]

[ 8 20]]

[[ 2 14]

[ 6 18]

[10 22]]]

[[[ 1 13]

[ 5 17]

[ 9 21]]

[[ 3 15]

[ 7 19]

[11 23]]]]

所以默认的transpose()是将数组的形状和对应的元素全部倒置。

对于有参数的transpose:对于三维数组,原型数组的参数应该是(0,1,2),对应的是外行,子行,子列,如果变成(1,0,2)就是将外行变成子行,子行变成外行。对于元素索引也发生同样改变,比如原来的元素3的索引是(0,1,1),转换后就是(1,0,1)

data1 = np.arange(12).reshape((2,3,2))

print(data1)

data2 = data1.transpose(1, 0, 2)

print(data2)

>>[[[ 0 1]

[ 2 3]

[ 4 5]]

[[ 6 7]

[ 8 9]

[10 11]]]

>>[[[ 0 1]

[ 6 7]]

[[ 2 3]

[ 8 9]]

[[ 4 5]

[10 11]]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值