当前位置 博文首页 > 文章内容

    Numpy中的shape函数的用法详解

    作者:shunshunshun18 栏目:未分类 时间:2021-03-22 14:45:19

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    shape函数的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,相当于行数。它的输入参数可以是一个整数表示维度,也可以是一个矩阵。shape函数返回的是一个元组,表示数组(矩阵)的维度,例子如下:

    1. 数组(矩阵)只有一个维度时,shape只有shape[0],返回的是该一维数组(矩阵)中元素的个数,通俗点说就是返回列数,因为一维数组只有一行,一维情况中array创建的可以看做list(或一维数组),创建时用()和[ ]都可以,多维就不可以这样子了,这里使用[ ],请看下例:

    >>> a=np.array([1,2])
    >>> a
    array([1, 2])
    >>> a.shape
    (2L,)
    >>> a.shape[0]
    2L
    >>> a.shape[1]
    Traceback (most recent call last):
     File "<pyshell#63>", line 1, in <module>
      a.shape[1]
    IndexError: tuple index out of range  #最后报错是因为一维数组只有一个维度,可以用a.shape或a.shape[0]来访问
    
    
    
    >>> a=np.array((1,2))
    >>> a
    array([1, 2]) #这个使用的是两个()包裹,得到的数组和前面的一样

    2.数组有两个维度(即行和列)时,和我们的逻辑思维一样,a.shape返回的元组表示该数组的行数与列数,请看下例:

    >>> a=np.array([[1,2],[3,4]])  #注意二维数组要用()和[]一起包裹起来,键入print a 会得到一个用2个[]包裹的数组(矩阵)
    >>> a
    array([[1, 2],
        [3, 4]])
    >>> a.shape
    (2L, 2L)
    >>> b=np.array([[1,2,3],[4,5,6]])
    >>> b
    array([[1, 2, 3],
        [4, 5, 6]])
    >>> b.shape
    (2L, 3L)

    3.当数组是三维时,要用一个()和两个[]包裹起来,键入print a 会得到一个用3个[]包裹的数组(矩阵),请看下例:

    >>> a=np.array([[[1,2],[3,4]]])
    >>> a
    array([[[1, 2],
        [3, 4]]])
    >>> a.shape
    (1L, 2L, 2L)

    这里返回的元组表示3个维度各包含的元素的个数。
    所谓元素,在一维时就是元素的个数,二维时表示行数和列数,三维时a.shape【0】表示创建的块数,a.shape【1】和a.shape【2】表示每一块(每一块都是二维的)的行数和列数,举个例子:

    >>> a=np.ones([2,2,3])#创建两个2行3列的数组(矩阵)
    >>> a
    array([[[ 1., 1., 1.],
        [ 1., 1., 1.]],
     
        [[ 1., 1., 1.],
        [ 1., 1., 1.]]])

    总结:使用np.array()创建数组时,

    一维的可以直接np.array([1,2,3])或者np.array((1,2,3)),输出(print)时是:

    >>> print a
    [1 2 3]

    外面有一个[]包裹;

    二维的要使用np.array([[1,2,3],[1,2,3]]),用一个()和一个[]把要输入的list包裹起来,输出(print)时是

    >>> print a
    [[1 2 3]
     [1 2 3]]

    外面有两个[]包裹;

    三维的要使用np.array([[[1,2,3],[1,2,3]]]),用一个()和两个[]把要输入的list包裹起来,输出(print)时是

    >>> print a
    [[[1 2 3]
     [1 2 3]]]

    外面有三个[]包裹;

    对于更高维的情况以后再研究