【Python学习】transpose函数

shape:(batch_size * x * y )
有batch_size个二维矩阵(x * y)相当于(z * x * y)

1. 多维数组的索引

import numpy as np
# 创建
x = np.arange(12).reshape((2,2,3))
print(x)

# 得到三维数组
[[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]]
# 相当于 batch_size*2*3

怎么读索引
上面的三维数组相当于下图

对于第一个括号,相当于说这个三维数组有两个2维数组
对于里层的第二个括号,就是最常见的二维矩阵
对于‘7’,x,y为二维数组中的1,0(索引从0开始,横向是x轴,纵向是y轴,与shape中的x,y有所不同),z是代表‘z’在第2个二维矩阵中。所以‘7’的索引是(1,0,1)(x, y, z)

2. numpy的transpose函数
按轴交换
transpose函数中的两个参数是要互换的轴

import numpy as np
# 创建
x = np.arange(12).reshape((2,2,3))
print(x)
#输出
[[[ 0  1  2]
  [ 3  4  5]]

 [[ 6  7  8]
  [ 9 10 11]]]
# transpose(z,x,y)-> (x,y,z)
y = np.transpose((x),(1,2,0))
print(y)
#输出
[[[ 0  6]
  [ 1  7]
  [ 2  8]]

 [[ 3  9]
  [ 4 10]
  [ 5 11]]]

3. Pytorch的transpose函数

transpose只能对两个维度进行转换

import numpy as np
import torch
# 创建
x = np.arange(12).reshape((2,2,3))
x = torch.Tensor(x)
print(x)
# 输出
tensor([[[ 0.,  1.,  2.],
         [ 3.,  4.,  5.]],

        [[ 6.,  7.,  8.],
         [ 9., 10., 11.]]])
# transpose:转换第一维度和第二维度,即二维矩阵的x和y
a = x.transpose(1,2)
print(a)
#输出
tensor([[[ 0.,  3.],
         [ 1.,  4.],
         [ 2.,  5.]],

        [[ 6.,  9.],
         [ 7., 10.],
         [ 8., 11.]]])
# transpose:
b = x.transpose(0,2)
print(b)
# 输出
tensor([[[ 0.,  6.],
         [ 3.,  9.]],

        [[ 1.,  7.],
         [ 4., 10.]],

        [[ 2.,  8.],
         [ 5., 11.]]])
  • 36
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Python中的transpose函数是用于矩阵转置的函数。它可以将矩阵的行和列互换,即将原来的行变成列,将原来的列变成行。transpose函数可以用于numpy库中的ndarray数组对象,也可以用于pandas库中的DataFrame对象。使用transpose函数可以方便地进行矩阵的转置操作,从而实现矩阵的行列互换。 ### 回答2: 在Python中,transpose函数是用来矩阵转置的。矩阵转置是指将矩阵的行与列对换,将原来的行变成新矩阵的列,将原来的列变成新矩阵的行。 transpose函数的使用非常简单,只需要输入要转置的矩阵作为参数即可。它返回一个新的矩阵,新矩阵中的行列与原来的矩阵相比对换了。 具体使用方法: 1.先导入numpy模块 import numpy as np 2.定义一个矩阵 matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) 3.使用transpose函数进行转置 transpose_matrix = np.transpose(matrix) 4.打印转置后的结果 print(transpose_matrix) 此时,输出的结果为: [[1 4 7] [2 5 8] [3 6 9]] 可以看出,原来的矩阵中第一行[1,2,3]变成了新矩阵中的第一列[1,4,7],原来的矩阵中第一列[1,4,7]变成了新矩阵中的第一行[1,2,3]。 除了使用transpose函数外,还可以使用.T来进行转置操作,效果是一样的。例如:matrix.T 总的来说,Python中的transpose函数对于需要对矩阵进行转置的情况非常有用,容易理解,使用方便,是矩阵运算中不可或缺的工具之一。 ### 回答3: Pythontranspose()函数是用来转置矩阵的函数。在数学领域中,矩阵的转置是指将m行n列的矩阵变成n行m列的矩阵,即行变列,列变行。transpose()函数既可以作用于二维数组,也可以作用于多维数组。 具体来说,transpose()函数可以用于以下两种情况: 1. 二维数组的转置 对于一个二维数组,transpose()函数可以将其进行转置操作。例如: ```python import numpy as np a = np.array([[1, 2], [3, 4], [5, 6]]) print("原始数组:") print(a) print("转置后的数组:") print(np.transpose(a)) ``` 运行结果如下: ``` 原始数组: [[1 2] [3 4] [5 6]] 转置后的数组: [[1 3 5] [2 4 6]] ``` 2. 多维数组的转置 对于一个多维数组,transpose()函数可以指定轴的顺序进行转置操作。例如: ```python import numpy as np a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print("原始数组:") print(a) print("按照前两维进行转置后的数组:") print(np.transpose(a, (0, 2, 1))) ``` 运行结果如下: ``` 原始数组: [[[1 2] [3 4]] [[5 6] [7 8]]] 按照前两维进行转置后的数组: [[[1 3] [2 4]] [[5 7] [6 8]]] ``` 在上述代码中,原始数组的形状为(2, 2, 2),其中第一维长度为2,第二维长度为2,第三维长度为2。通过transpose()函数的第二个参数指定轴的顺序为(0, 2, 1),即按照前两维进行转置操作。转置后的数组的形状为(2, 2, 2),其中第一维长度为2,第二维长度为2,第三维长度为2,符合我们的预期。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值