Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)相关的知识,希望对你有一定的参考价值。
参考技术A Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)数组拼接方法一
思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。
https://stackoverflow.com/questions/9775297/append-a-numpy-array-to-a-numpy-array
https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
numpy数组拼接方法介绍
数组拼接方法二
思路:numpy提供了numpy.append(arr, values, axis=None)函数。对于参数规定,要么一个数组和一个数值;要么两个数组,不能三个及以上数组直接append拼接。append函数返回的始终是一个一维数组。
可知,concatenate()效率更高,适合大规模的数据拼接
2-Numpy之hstackvstackconcatenate区别
concatenate与hstack、vstack的异同点:
都表示拼接数组,concatenate可以实现hstack和vstack的功能,只需要通过调整参数axis的值即可。
其中:v表示垂直(Vertical)
h表示水平(Horizontal)
axis=0,表示将拼接新行,相当于vstack;
axis=1,表示将拼接新列,相当于hstack。
在拼接过程中需要注意的是:传入的数组必须在指定轴上有相同的维度。
举个例子吧!
1 arr=np.array([[1,2,3],[2,2,3],[3,5,1]]) 2 >>> arr 3 array([[1, 2, 3], 4 [2, 2, 3], 5 [3, 5, 1]]) 6 7 #hstack用法 8 >>> h_ze = np.zeros((3,1)) 9 >>> h_ze 10 array([[0.], 11 [0.], 12 [0.]]) 13 14 np.hstack((arr,he_ze)) 15 array([[1., 2., 3., 0.], 16 [2., 2., 3., 0.], 17 [3., 5., 1., 0.]]) 18 19 #vstack用法 20 >>> v_ze = np.zeros((1,3)) 21 >>> v_ze 22 array([[0., 0., 0.]]) 23 >>> np.vstack((arr,v_ze)) 24 array([[1., 2., 3.], 25 [2., 2., 3.], 26 [3., 5., 1.], 27 [0., 0., 0.]]) 28 29 30 #axis=1相当于hstack 31 >>> np.concatenate((arr,h_ze),axis=1) 32 array([[1., 2., 3., 0.], 33 [2., 2., 3., 0.], 34 [3., 5., 1., 0.]]) 35 36 #axis=0相当于vstack 37 >>> np.concatenate((arr,v_ze),axis=0) 38 array([[1., 2., 3.], 39 [2., 2., 3.], 40 [3., 5., 1.], 41 [0., 0., 0.]])
以上是关于Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)的主要内容,如果未能解决你的问题,请参考以下文章
numpy数组拼接方法介绍(concatenate)---一次性完成多个数组的拼接
[Python Cookbook] Numpy Array Joint Methods: Append, Extend & Concatenate