python 学习笔记(1) 您所在的位置:网站首页 Jupyter没有shape属性 python 学习笔记(1)

python 学习笔记(1)

2023-09-13 13:55| 来源: 网络整理| 查看: 265

关于数组的转置,Numpy提供了transpose函数和.T属性两种实现形式,一般transpose使用起来更为方便,另外转换其中的两个轴还可以用swapreaxes,下面通过例子来做介绍。

#一维数组转置 >>> arr = np.arange(6) >>> print arr [0, 1, 2, 3, 4, 5] >>> print np.transpose(arr) [0, 1, 2, 3, 4, 5]#一维还是一维… #二维数组转置 >>> arr = np.arange(6).reshape((2,3)) >>> print arr [[0, 1, 2], [3, 4, 5]] >>> print np.transpose(arr) [[0,3], [1,4], [3,5]] #三维数组的转置 >>> arr = np.arange(24).reshape((2,3,4)) >>> print arr [[[ 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 np.transpose(arr) [[[0, 12], [4, 16], [8, 20]], [[1, 13], [5, 17], [9, 21]], [[2, 14], [6, 18], [10, 22]], [[3, 15], [7, 19], [11, 23]]] #当数组>=三维之后,我们可能希望按照特定规则来转置,transpose 可以接受用于指定转置的坐标轴号码的元组 >>> print np.transpose(arr, (1,0,2)) [[[ 0, 1, 2, 3], [ 12, 13, 14, 15]], [[ 4, 5, 6, 7], [ 16, 17, 18, 19]], [[ 8, 9, 10, 11], [ 20, 21, 22, 23]]]

对于是否指定转化规则,具体来看三维的变化:原始数据的“三维”是(2,3,4),不指定转换规则后的“三维”是(4,3,2),而指定规则后的三维则是按照我们指定的规则,将其一维和二维进行调换。

#原始三维数据规则 >>> print (arr.shape) (2, 3, 4) #不指定转换规则 >>> print (np.transpose(arr).shape) (4, 3, 2) #指定转换规则 >>> print (np.transpose(arr,(1, 0, 2)).shape) (3, 2, 4)

ndarray的T属性,用法则比较简单,只需要在数组后跟.T即可。.T属性实际是转置里面的特殊情况,即不指定转置规则的默认规则。

#一维数组转置 >>> arr = np.arange(6) >>> print arr [0, 1, 2, 3, 4, 5] >>> print arr.T [0, 1, 2, 3, 4, 5]#一维还是一维… #二维数组转置 >>> arr = np.arange(6).reshape((2,3)) >>> print arr [[0, 1, 2], [3, 4, 5]] >>> print arr.T [[0,3], [1,4], [3,5]] #三维数组的转置 >>> arr = np.arange(24).reshape((2,3,4)) >>> print arr [[[ 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 arr.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]]]

当某些情况下,你可能只需要转换其中的两个轴,除了可以使用transpose指定轴以外(当然需要每个轴都指定顺便,只是调整其中的部分而已),还可以使用swapreaxes。

>>> arr = np.arange(24).reshape((2,3,4)) >>> print arr [[[ 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 arr.swapaxes(1, 0) [[[ 0, 1, 2, 3], [ 12, 13, 14, 15]], [[ 4, 5, 6, 7], [ 16, 17, 18, 19]], [[ 8, 9, 10, 11], [ 20, 21, 22, 23]]]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有