精华内容
下载资源
问答
  • python transpose函数说明

    千次阅读 2018-08-17 14:37:33
    1、不加参数的情况下,transpose()的作用就是整个矩阵完全置换 import numpy as np A = np.arange(24).reshape(2,3,4) T = A.transpose() print(T.shape) print('______________') print(A) print('_____________...

    1、不加参数的情况下,transpose()的作用就是整个矩阵完全置换

    import numpy as np
    
    A = np.arange(24).reshape(2,3,4)
    T = A.transpose()
    print(T.shape)
    print('______________')
    print(A)
    print('______________')
    print(T)
    print('______________')
    print(A[1,2,3])
    print(T[3,2,1])

    output:

    (4, 3, 2)
    ______________
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    ______________
    [[[ 0 12]
      [ 4 16]
      [ 8 20]]
    
     [[ 1 13]
      [ 5 17]
      [ 9 21]]
    
     [[ 2 14]
      [ 6 18]
      [10 22]]
    
     [[ 3 15]
      [ 7 19]
      [11 23]]]
    ______________
    23
    23

    2、加参数时,必须根据矩阵的维度来设置参数

    import numpy as np
    
    
    
    #对于该矩阵可以认为有三个维度,即0,1,2
    A = np.arange(24).reshape((2,3,4))
    print(A)
    #如果不改变原矩阵,那么正常的参数顺序是:(0,1,2)
    T = A.transpose(0,1,2)
    print(T)
    print('_____________________')
    #如果想要置换第1和第2个维度,则参数顺序为:(1, 0 ,2)
    T = A.transpose(1,0,2)
    print(A[0,1,2])
    print(T[1,0,2])
    print('_____________________')
    #如果要置换第1和第3个维度,则参数的顺序为:(2,1,0)
    T = A.transpose(2,1,0)
    print(A[0,1,2])
    print(T[2,1,0])

    output:

    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    [[[ 0  1  2  3]
      [ 4  5  6  7]
      [ 8  9 10 11]]
    
     [[12 13 14 15]
      [16 17 18 19]
      [20 21 22 23]]]
    _____________________
    6
    6
    _____________________
    6
    6
    

     

    展开全文
  • Python的Numpy库的时候,被 numpy.transpose 函数用于高维数组搞的一头雾水,不明白原理,通过手动分析和代码验证,发现 transpose 的具体用法。 transpose 作用是改变序列,下面是一些小例子: 在不添加参数的...
  • numpy中的transpose函数使用方法

    千次阅读 2020-12-13 12:21:14
    二维矩阵的transpose函数:不晓得该怎么起头,直接上干货。transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行与列相互调换位置;例如:随机生成一个三行五列的二维矩阵:arr = np.arange(15)....

    二维矩阵的transpose函数:

    不晓得该怎么起头,直接上干货。

    transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行与列相互调换位置;

    例如:随机生成一个三行五列的二维矩阵:

    arr = np.arange(15).reshape((3, 5))

    arr

    array([[ 0,1, 2, 3, 4],

    [5, 6, 7, 8, 9],

    [10, 11, 12, 13, 14]])

    >> arr.T

    array([[ 0,  5, 10],

    [ 1,  6, 11],

    [ 2,  7, 12],

    [ 3,  8, 13],

    [ 4,  9, 14]])

    reshape的作用是随机生成一个矩阵的行与列;

    元素第0个位置表示0;第一个位置表示1,以此类推;总共是15个数;

    然后arr.T相当于矩阵的转置;

    transpose(X,Y)函数和矩阵的转置是一个意思,相当于行为X轴,列为Y轴,X轴和Y轴调换了位置;

    X轴用0表示,Y轴用1表示;

    例如:如果transport(1,0)表示行与列调换了位置;

    >> arr.transpose(1, 0)

    array([[ 0,5, 10],

    [1, 6, 11],

    [2, 7, 12],

    [3, 8, 13],

    [4, 9, 14]])

    展开全文
  • pythontranspose()函数

    千次阅读 2019-11-25 21:30:17
    transpose 的原理其实是根据维度(shape)索引决定的,举个栗子: x = np.arange(4).reshape((2,2)) //生成一个2x2的...transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置: x = np.aran...

    transpose 的原理其实是根据维度(shape)索引决定的,举个栗子:

    x = np.arange(4).reshape((2,2)) //生成一个2x2的数组
    print(x)
    [[0 1]   
    [2 3]]
    我们生成了一个维度为二维的数组,其中有两个索引值(矩阵的行与列)。

    transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置:

    x = np.arange(4).reshape((2,2))
    x = np.transpose(x) 
    print(x)
    [[0 2]
     [1 3]]
    我们可以直观的看到,数组的行列索引值对换,1的位置从x(0,1)跑到了x(1,0)。

    那么三维数组呢?

    我们继续生成一个三维的数组:

    x = np.arange(12).reshape((2,2,3))  //生成一个2x2x3的数组
    print(x)
    [[[ 0  1  2]
      [ 3  4  5]]
     [[ 6  7  8]
      [ 9 10 11]]]
    我们从高中数学知道三维由x轴、y轴以及z轴组成。

    假设三维数组当中的索引值为x,y,z

    transpose()函数的作用就是调换x,y,z的位置,也就是数组的索引值。

    所以我们正常的数组索引值为(0,1,2),等于(x,y,z)

    我们来看实例代码:

    x = np.arange(12).reshape((2,2,3))
    print(x)
    [[[ 0  1  2]
      [ 3  4  5]]
     [[ 6  7  8]
      [ 9 10 11]]]
     
    x = np.transpose(x,(1,0,2))  //transpose()函数的第二个参数就是改变索引值的地方
    print(x)
    [[[ 0  1  2]
      [ 6  7  8]]
     [[ 3  4  5]
      [ 9 10 11]]]
    通过transpose()函数改变了x的索引值为(1,0,2),对应(y,x,z)

    索引改变后原本y的值和x的值对换了。

    有上面代码的数字7为例,原本的7的位置索引为(1,0,1),通过transpose(x,(1,0,2))索引改变为(0,1,1)

     

    无论四维、五维……都可以用这个原理分析。
    ————————————————
    版权声明:本文为CSDN博主「DeepGym」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_37377691/article/details/80086480

    展开全文
  • Python numpy模块中transpose函数以及swapaxes函数用法

    万次阅读 多人点赞 2018-03-09 14:16:59
    一、前言众所周知,python的numpy模块在数据分析中占有重要的地位,因其所定义的 ndarray(n-dimensional array,多维数组)对象比之python基本类库所定义的 list 对象而言,具有更高的灵活性和更广的适用范围。...

    一、前言

    众所周知,python的numpy模块在数据分析中占有重要的地位,因其所定义的 ndarray(n-dimensional array,多维数组)对象比之python基本类库所定义的 list 对象而言,具有更高的灵活性和更广的适用范围。更重要的是,由于numpy模块是用C语言编写的,因此计算机在处理 ndarray 对象时的速度要远快于 list 对象。看一个例子:

    >>  import numpy as np
        my_arr = np.arrange(1000000)
        my_list = list(range(1000000))
    
    >>  %time for _ in range(10): my_arr2 = my_arr * 2
      
        CPU times: user 17.7 ms, sys: 12.5 ms, total: 30.1 ms Wall time: 29.9 ms
    
    
    >>  %time for _ in range(10): my_list2 = [x * 2 for x in my_list]
       
        CPU times: user 525 ms, sys: 105 ms, total: 630 ms Wall time: 629 ms
    可以明显地看出,当数字大小达到百万数量级时,使用 ndarray 对象的运算时间比使用 list 对象运算时间有明显的减少。而实际的数据分析中用到的数据只会更大,这时使用 ndarray 显然是一个更为明智的选择。

    二、numpy中transpose函数及swapaxes函数的用法

    首先从二维数组开始,构造一个数组如下:

    >> arr = np.arange(15).reshape((3, 5))
       arr
         
       array([[ 0,  1,  2,  3,  4],
              [ 5,  6,  7,  8,  9],
              [10, 11, 12, 13, 14]])

    reshape的作用是生成一个3X5的二维数组arr。我们可以把此处的arr看作一个3X5阶的矩阵,学过线性代数的朋友应该知道,此时矩阵元素0可表示为a11,7可表示为a23,13可表示为a34。而对应的数组中,0可表示为arr[0][0],7可表示为arr[1][2],13可表示为arr[2][3]。

    我们可以用arr[m][n](m=0,1,2;n=0,1,2,3)来表示此数组中的元素。此时我们称此二位数组arr有两条轴,分别表示为0和1,其中m对应的轴为0,n对应的轴为1。对以上数组对应的矩阵进行转置:

    >> arr.T
       
       array([[ 0,  5, 10],
              [ 1,  6, 11],          
              [ 2,  7, 12],            
              [ 3,  8, 13],
              [ 4,  9, 14]])

    相信学过线性代数的朋友很好理解,此矩阵转置操作等价于将轴0和1交换,对应于numpy模块中定义的的transpose函数以及swapaxes函数可表示为:

    >> arr.swapaxes(1, 0)
    
       array([[ 0,  5, 10],
              [ 1,  6, 11],
              [ 2,  7, 12],
              [ 3,  8, 13],
              [ 4,  9, 14]])
    
    
    >> arr.transpose(1, 0)
       
       array([[ 0,  5, 10],
              [ 1,  6, 11],
              [ 2,  7, 12],
              [ 3,  8, 13],
              [ 4,  9, 14]])
    

    可以看出,以上变换是等价的,均是一种“轴变换”。

    二维数组相对容易理解,三维数组相对复杂一点,但基本原理不变,不过是在二位数组的基础上增加了一条轴。构造以下三维数组:

    >> arr = np.arange(24).reshape((2, 3, 4))
       arr
    
       array([[[ 0,  1,  2,  3],
               [ 4,  5,  6,  7],
               [ 8,  9, 10, 11]],
    
              [[12, 13, 14, 15],
               [16, 17, 18, 19],
               [20, 21, 22, 23]]])
    此时可用 arr[x][y][z](x=0,1; y=0,1,2; z=0,1,2,3)来表示,此时x对应轴0,y对应轴1,z对应轴2。看下图会更直观一点:

    由上图可以看出,元素0可表示为arr[0][0][0],元素6可表示为arr[0][1][2],元素12可表示为arr[1][0][0],元素18可表示为arr[1][1][2],元素22可表示为arr[1][2][2]。那么此时若使用函数transpose(1,0,2),即代表将轴0和1对换,轴2不变,亦即将arr[x][y][z]中x和y位置互换,即元素12变为arr[0][1][0],元素22变为arr[1][2][2],以此类推,整个数组将变为:

    >> arr.transpose((1, 0, 2)
    
    
       array([[[ 0,  1,  2,  3],
               [12, 13, 14, 15]],
    
              [[ 4,  5,  6,  7],
               [16, 17, 18, 19]],
    
              [[ 8,  9, 10, 11],
               [20, 21, 22, 23]]])
    同理,swapaxes(1,2)即表示将轴1和2位置互换,轴0不变:
    >> arr.swapaxes(1, 2)
    
     
       array([[[ 0,  4,  8],
               [ 1,  5,  9],
               [ 2,  6, 10],
               [ 3,  7, 11]],
    
              [[12, 16, 20],
               [13, 17, 21],
               [14, 18, 22],
               [15, 19, 23]]])

    相信看到这儿,大家应该对这两个函数的用法更加清楚了吧。

    此问题的关键在于搞清楚轴与元素位置的对应关系,以及在进行轴变换时,对应的元素位置会发生怎么样的改变,进而会导致整个数组的形状发生怎样的改变。

    (第一次写博客,有什么不足之处,望谅解;有什么可以改进的地方,望不吝赐教。谢谢!)

    展开全文
  • 在Numpy对矩阵的转置中,我们可以用transpose()函数来处理。这个函数的运行是非常反常理的,可能会令人陷入思维误区。假设有这样那个一个三维数组(2*4*2):array ([[[ 0, 1, 2, 3],[ 4, 5, 6, 7]],[[ 8, 9, 10, 11],...
  • python transpose用法

    千次阅读 2018-12-22 20:08:26
    相信学过线性代数的朋友很好理解,此矩阵转置操作等价于将轴0和1交换,对应于numpy模块中定义的的transpose函数以及swapaxes函数可表示为: >> arr.swapaxes( 1 , 0 ) array([[ 0 , 5 , 10 ], [ 1 , 6 , ...
  • transpose用法:tensor.transpose(a,b) 可以理解为矩阵转置,每次输入两个index,实现转置,是2D的操作 permute用法:tensor.permute(a,b,c) transpose仅可以进行二维转置,而permute则不仅限于二维,可以进行多维度...
  • 初学python,在看别人写的代码的时候遇到复数表示的维度序号,就让我感到有点疑惑,用代码尝试了几次,还是没有发现其中的规则。例如有四维的tenson,形状是[3, 4,2, 1], transpose(-1, 1)表示哪两个维度进行转换
  • Pythontranspose()函数

    万次阅读 2017-09-21 15:08:10
    >>> a = array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]]) >>> b = a.transpose(1,0,2) array([[[ 0, 1, 2, 3],
  • #MXNET的N*C*H*W在numpy打印时比较直观 #mxnet卷积层 # 输入数据格式...A.transpose(0,2,3,1) 目标数据 batch * height * width * inchannel 总结: transpose函数的用法基本就是,把需要交换的维度对应起来就可以了
  • python中numpy库的transpose函数用法

    千次阅读 2019-04-20 21:54:54
    np.transpose(a,axis=None) 输入:1.阵列array a ...这种思维方式有利于本函数分析,参见 例如: 当a为三维矩阵时,比如shape 为(3,4,5) a1=np.transpose(a,(0,1,2)),原来的0轴为新的0轴,原来的...
  • DataFrame.transpose(*args,copy=False)[source]转置索引和列。通过将行写为列将DataFrame反映在其主要对角线上,反之亦然。该属性T是方法的访问器transpose()。参数:*args:tuple, 可选接受与NumPy的兼容性。copy...
  • tf.transposetranspose(a,perm=None,name='transpose')Defined in tensorflow/python/ops/array_ops.py.See the guides: Math > Matrix Math Functions, Tensor Transformations > Slicing an...
  • Python numpy.transpose 详解

    万次阅读 多人点赞 2017-12-27 15:20:44
    前言看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 用法还是很简单的。 正文Numpy 文档 numpy.transpose 中做了些解释,transpose 作用是改变序列,...
  • Defined in tensorflow/python/ops/array_ops.py. See the guides: Math > Matrix Math Functions, Tensor Transformations > Slicing and Joining Transposes a. Permutes the dimensions according to perm. The ...
  • import numpy as np a=a=np.array([[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12],[13,14,15],[16,17,18]],[[19,20,21],[22,23,24],[25,26,27]]]) #创建一个shape(3x3x3)的数组 print(a[0][2][0]) ...a.transpose(1
  • 1.transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。eg: numpy的数组: arr=np.arange(16).reshape((2,2,4)) arr= array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9...
  • 1.transpose有这么几种模式FLIP_LEFT_RIGHT ,FLIP_TOP_BOTTOM ,ROTATE_90 ,ROTATE_180 ,ROTATE_270,TRANSPOSE ,TRANSVERSE 我们来看看效果原图 使用FLIP_LEFT_RIGHT 相当于左右镜像图像 FLIP_TOP_BOTTOM ...
  • 二维情况例如以下代码:x = np.arange(4).reshape((2,2))输出:x = ([[0, 1],[2, 3]])对于二维的数组,np.transpose()即为将矩阵进行转置的意思 PS:对于矩阵的维度的表示:n∗m∗ln*m*ln∗m∗l:有多少个数据相乘...
  • 官网介绍https://www.tensorflow.org/api_docs/python/tf/transpose tf.transpose( a, perm=None, name='transpose', conjugate=False ) 函数说明: 依据指定perm交换输入张量的不同维度 参数perm: ...
  • python numpy transpose函数

    2020-03-04 12:38:19
    python numpy transpose函数numpy transpose函数 numpy transpose函数 >>> import numpy as np >>> A = np.arange(16) >>> A = A.reshape(2, 2, 4) >>> print(A) [[[ 0 1 2 3] ...
  • numpy.transpose转置函数 用法 numpy.transpose(a, axes=None) 功能: 实例
  • C++通过pybind11调用Python 实现transpose

    千次阅读 2020-11-19 14:54:59
    直接用numpy的transpose,因为该函数仅仅是改变array的strides,并不影响内存排布,替换的解决方案则是可以使用TensorFlow的transpose函数,可以得到改变内存排布的结果。后面想到了一个直接使用numpy的简单方法:...
  • NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、...原文地址:Python numpy.transpose函数方法的使用 ...
  • 转置有三种方式,transpose方法、T属性以及swapaxes方法。 1 . T 适用于一、二维数组 In [1]: import numpy as np In [2]: arr = np.arange(20).reshape(4,5)#生成一个4行5列的数组 In [3]: arr Out[3]: ...
  • tf.transpose函数中文意思是转置,对于低维度的转置问题,低维的还可以理解高维有点懵 看了博客也不是很明白 tf.transpose函数 tf.transpose( a, perm=None, name='transpose', conjugate=False ) 置换 a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,057
精华内容 7,622
关键字:

pythontranspose函数

python 订阅