好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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)。

查看更多关于python中numpy.concatenate()和numpy.reshape()函数的使用的详细内容...

  阅读:31次