numpy Python np.array基础操作 (三)转置:transpose() 和 .T

numpy.transpose()

transpose 作用是改变序列,但不改变原数组

a.T

就是转置 = a.transpose() 也不改变原数组

# np.transpose() 改变数组的序列,但不改变原数组
# 针对二维数组,等同于转置
a = np.array([[3.0, 9.0, 8.0, 0.0],[1.0, 4.0, 6.0, 5.0]])
print(a) # [[3. 9. 8. 0.] [1. 4. 6. 5.]]
print(a.shape) # (2, 4)
a.transpose() # = a.T
b = a.transpose()
print(a) # # [[3. 9. 8. 0.] [1. 4. 6. 5.]]
print(a.shape) # (2, 4)
print(b) # [[3. 1.] [9. 4.] [8. 6.] [0. 5.]]
print(b.shape) # (4,2)

多试几次就能试明白了。
或者针对单个数的位置调换来判断。

# # 针对多维数组
a = np.arange(24).reshape((2, 3, 4))
print(a)
# [[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]

# [[12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]]
print(a.transpose()) # 如果没有参数,默认‘转置’[::-1] # = a.T
# [[[ 0 12]
# [ 4 16]
# [ 8 20]]

# [[ 1 13]
# [ 5 17]
# [ 9 21]]

# [[ 2 14]
# [ 6 18]
# [10 22]]

# [[ 3 15]
# [ 7 19] 
# [11 23]]]
print(a.transpose().shape) # (4, 3, 2)
# transpose进行的操作其实是将各个维度重置,原来(2,3,4)对应的是(0,1,2)。
# 使用transpose(1,0,2)后,各个维度大小变为(3,2,4),其实就是将第一维和第二维互换。
print(a.transpose(1,0,2)) #shape:(3,2,4)
#[[[ 0  1  2  3]
# [12 13 14 15]]

# [[ 4  5  6  7]
# [16 17 18 19]]

# [[ 8  9 10 11] 
# [20 21 22 23]]]
print(a.transpose(2,0,1)) #shape:(4,2,3)
# [[[ 0  4  8] 
# [12 16 20]]

#  [[ 1  5  9] 
#  [13 17 21]]

#  [[ 2  6 10] 
#  [14 18 22]]

#  [[ 3  7 11]
#  [15 19 23]]]
print(a.transpose(0,2,1)) # shape:(2,4,3)
# [[[ 0  4  8]
#   [ 1  5  9]
#   [ 2  6 10]
#   [ 3  7 11]]

#  [[12 16 20]
#   [13 17 21]
#   [14 18 22]
#   [15 19 23]]]

参考:感激!!

https://blog.csdn.net/u012762410/article/details/78912667

https://blog.csdn.net/liangzuojiayi/article/details/51537314

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值