运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

python中numpy.concatenate()和numpy.reshape()函数的使用

运维开发网 https://www.qedev.com 2021-04-25 08:57 出处:51CTO 作者:๑~夏时~๑
这里写目录标题numpy.concatenate()函数numpy.reshape()函数numpy.concatenate()函数        numpy.concatenate() 是一种数组拼接方法,将具有相同结构的array序列拼接成一个array。        numpy提供了numpy.concatenate((a1,a2,…)

  • numpy.concatenate()函数
  • numpy.reshape()函数

numpy.concatenate()函数

        numpy.concatenate() 是一种数组拼接方法,将具有相同结构的array序列拼接成一个array。

        numpy提供了numpy.concatenate((a1,a2,…), axis=0)函数,能够一次完成多个数组的拼接,其中a1,a2,…是数组类型的参数,axis是拼接方向,默认值为0,拼接方向可以理解为拼接完成后数量发生变化的方向。axis=0,拼接方向为横轴,需要纵轴结构相同,表示对应列的数组拼接;axis=1,拼接方向为纵轴,需要横轴结构相同,表示对应行的数组拼接;axis=None,则数组在使用前被展平。

        numpy.append()和numpy.concatenate()均为numpy数组拼接方法,这两个函数从运行时间方面进行比较的话, numpy.concatenate()效率更高,适合大规模的数组拼接。

  • examples1:

    >>> import numpy as np

    >>> a = np.array([1, 2])

    >>> b = np.array([3, 4])

    >>> np.concatenate((a, b), axis=0)

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

  • examples2:

    >>> import numpy as np

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

    >>> b = np.array([[5, 6]])

    >>> np.concatenate((a, b), axis=0)

    array([[1, 2],

               [3, 4],

               [5, 6]])

    >>> np.concatenate((a, b.T), axis=1)

    array([[1, 2, 5],

               [3, 4, 6]])

    >>> np.concatenate((a, b), axis=None))

    array([1, 2, 3, 4, 5, 6])

numpy.reshape()函数

        numpy.reshape() 用于重塑数组的形状,作用是在不改变矩阵的数值的前提下修改矩阵的形状。

        numpy提供了numpy.reshape(a, newshape, order=‘C’)函数,其中,a:需要被重塑的数组;newshape:整数或整数数组,新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量;order:{‘C’,‘F’,‘A’}可选,使用此索引顺序读取a的元素,并使用此索引顺序将元素放置到重新形成的数组中。

  • 简单使用

    >>> import numpy as np

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

    >>> a.reshape(1, 4)

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

  • 缺省值-1:np.reshape里面的-1代表不知道要给行(或者列)设置为几,reshape函数会根据原矩阵的形状自动调整。

    >>> import numpy as np

    >>> z = np.array([[1, 2, 3, 4],

                                   [5, 6, 7, 8]])

    >>> z.reshape(-1)

    array([ 1, 2, 3, 4, 5, 6, 7, 8])

    >>> z.reshape(-1, 1)

    array([[ 1],

               [ 2],

               [ 3],

               [ 4],

               [ 5],

               [ 6],

               [ 7],

               [ 8]])

    >>> z.reshape(-1, 2)

    array([[ 1, 2],

               [ 3, 4],

               [ 5, 6],

               [ 7, 8]])

               

           z.reshape(-1, 1)是说,我们不知道新z的行数是多少,但是想让z变成只有一列,行数不知的新数组,通过z.reshape(-1,1),numpy自动计算出有8行,新的数组shape属性为(8, 1),与原来的(2, 4)匹配。z.reshape(-1, 2),行数未知,列数等于2,reshape后的shape等于(4, 2)。

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消