1.比较简单,直接上代码:
numpy提供了numpy.concatenate((a1,a2,...), axis=0)函数。能够一次完成多个数组的拼接。其中a1,a2,...是数组类型的参数,axis是按照第几维进行拼接,默认为0,可以不用写。
当然了,也可以把ndarray转换为list,再用append,extend进行拼接,最后再转回ndarray。但是,这样的时间成本就比较高了。
所以,要处理大规模的数据拼接,concatenate()效率更高。
#!/usr/bin/python3 import numpy as np a = [[[1, 2, 3], [2, 3, 4], [3, 4, 5]], [[2, 3, 4], [3, 4, 5], [4, 5, 6]], [[3, 4, 5], [4, 5, 6], [5, 6, 7]]] a = np.array(a) print(type(a)) print(a.shape) ## (3, 3, 3) b = [[[2, 2, 3], [2, 3, 4], [3, 4, 5]], [[2, 3, 4], [3, 4, 5], [4, 5, 6]], [[3, 4, 5], [4, 5, 6], [5, 7, 7]]] b = np.array(b) print(type(b)) print(b.shape) # # (3, 3, 3) # concatenate((a1, a2, ...), axis=0, out=None) c = np.concatenate((a, b), axis=0) print(type(c)) print(c.shape) print(c) # # (6, 3, 3) # [[[1 2 3] # [2 3 4] # [3 4 5]] # # [[2 3 4] # [3 4 5] # [4 5 6]] # # [[3 4 5] # [4 5 6] # [5 6 7]] # # [[2 2 3] # [2 3 4] # [3 4 5]] # # [[2 3 4] # [3 4 5] # [4 5 6]] # # [[3 4 5] # [4 5 6] # [5 7 7]]] c = np.concatenate((a, b), axis=1) print(type(c)) print(c.shape) print(c) # # (3, 6, 3) # [[[1 2 3] # [2 3 4] # [3 4 5] # [2 2 3] # [2 3 4] # [3 4 5]] # # [[2 3 4] # [3 4 5] # [4 5 6] # [2 3 4] # [3 4 5] # [4 5 6]] # # [[3 4 5] # [4 5 6] # [5 6 7] # [3 4 5] # [4 5 6] # [5 7 7]]] c = np.concatenate((b, a), axis=0) print(type(c)) print(c.shape) print(c) # # (6, 3, 3) # [[[2 2 3] # [2 3 4] # [3 4 5]] # # [[2 3 4] # [3 4 5] # [4 5 6]] # # [[3 4 5] # [4 5 6] # [5 7 7]] # # [[1 2 3] # [2 3 4] # [3 4 5]] # # [[2 3 4] # [3 4 5] # [4 5 6]] # # [[3 4 5] # [4 5 6] # [5 6 7]]]