时间:2021-05-22
Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等类和函数用于数组拼接的操作。
各种函数的特点和区别如下标:
concatenate 提供了axis参数,用于指定拼接方向 append 默认先ravel再拼接成一维数组,也可指定axis stack 提供了axis参数,用于生成新的维度 hstack 水平拼接,沿着行的方向,对列进行拼接 vstack 垂直拼接,沿着列的方向,对行进行拼接 dstack 沿着第三个轴(深度方向)进行拼接 column_stack 水平拼接,沿着行的方向,对列进行拼接 row_stack 垂直拼接,沿着列的方向,对行进行拼接 r_ 垂直拼接,沿着列的方向,对行进行拼接 c_ 水平拼接,沿着行的方向,对列进行拼接
将两个一维数组合并成一个二维数组:
import torchimport numpy as npimport matplotlib.pyplot as plta = np.arange(0,15,0.1)b = 1.088 * a + 0.638 + np.random.rand() * 10print(a.shape,b.shape)points = np.array([a,b])print(points.shape)(150,) (150,)(2, 150)arr 待合并的数组的复制(特别主页是复制,所以要多耗费很多内存) values 用来合并到上述数组复制的值。如果指定了下面的参数axis的话,则这些值必须和arr的shape一致(shape[axis]之外都相等),否则的话,则没有要求。 axis 要合并的轴.
>>> import numpy as np>>> ar1 = np.array([[1,2,3], [4,5,6]])>>> ar2 = np.array([[7,8,9], [11,12,13]])>>> np.append(ar1, ar2) # 先ravel扁平化再拼接,所以返回值为一个1维数组array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13])>>> np.append(ar1, ar2, axis=0) # 沿第一个轴拼接,这里为行的方向 array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [11, 12, 13]])>>> np.append(ar1, ar2, axis=1) # 沿第二个轴拼接,这里为列的方向 array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 11, 12, 13]])a_tuple: 对需要合并的数组用元组的形式给出 axis 待合并的轴,默认为0
>>> import numpy as np>>> ar1 = np.array([[1,2,3], [4,5,6]])>>> ar2 = np.array([[7,8,9], [11,12,13]])>>> ar1array([[1, 2, 3], [4, 5, 6]])>>> ar2array([[ 7, 8, 9], [11, 12, 13]])>>> np.concatenate((ar1, ar2)) # 这里的第一轴(axis 0)是行方向array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [11, 12, 13]])>>> np.concatenate((ar1, ar2),axis=1) # 这里沿第二个轴,即列方向进行拼接array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 11, 12, 13]])>>> ar3 = np.array([[14,15,16]]) # shape为(1,3)的2维数组>>> np.concatenate((ar1, ar3)) # 一般进行concatenate操作的array的shape需要一致,当然如果array在拼接axis方向的size不一样,也可以完成>>> np.concatenate((ar1, ar3)) # ar3虽然在axis0方向的长度不一致,但axis1方向上一致,所以沿axis0可以拼接array([[ 1, 2, 3], [ 4, 5, 6], [14, 15, 16]])>>> np.concatenate((ar1, ar3), axis=1) # ar3和ar1在axis0方向的长度不一致,所以报错常用于快速生成ndarray数据
>>> np.r_[ar1,ar2] # 垂直拼接,沿着列的方向,对行进行拼接array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [11, 12, 13]]) >>> np.c_[ar1,ar2] # 水平拼接,沿着行的方向,对列进行拼接array([[ 1, 2, 3, 7, 8, 9], [ 4, 5, 6, 11, 12, 13]])到此这篇关于numpy数组合并和矩阵拼接的实现的文章就介绍到这了,更多相关numpy数组合并和矩阵拼接内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
采用numpy快速将两个矩阵或数组合并成一个数组:importnumpyasnp数组a=[[1,2,3],[4,5,6]]b=[[1,1,1],[2,2,2]]
一、合并多个numpy矩阵1、首先创建两个多维矩阵矩阵a的大小为(2,3,2)矩阵b的大小为(3,2,3)采用concatentate这个函数就可以合并两个多维
在python中,提到如何计算多维数组和矩阵,那一定会想到numpy。numpy定义了矩阵和数组,为它们提供了相关的运算。size中文解释为大家、尺寸的意思,如
在进行数据分析的时候,会把把一些具有多个特征的样本数据进行拼接合并吗,放在一起分析,预测....下面是用numpy中的函数进行数组的拼接。(1)方法一。np.v
归并算法之有序数组合并算法实现一个简单的有序数组合并算法:写一个函数,传入2个有序的整数数组,返回一个有序的整数数组。实现相当简单,创建一个长度为这两个长度之和