Python数据分析

Python数据分析 知识量:13 - 56 - 232

2.10 数组合并><

横向合并- 2.10.1 -

数组的横向合并就是在行方向上进行简单的拼接。

可以使用concatenate()、hstack()和column_stack()函数中任意一个来实现拼接,但需要确保拼接的两个数组行数应当一致。

import numpy as np
arr1=np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2=np.array([[4,4],[5,5],[6,6]])
print("arr1:\n",arr1)
print("arr2:\n",arr2)
print('use np.concatenate():')
arr3=np.concatenate([arr1,arr2],axis=1)
print(arr3)
print('use np.hstack():')
arr3=np.hstack((arr1,arr2))
print(arr3)
print('use np.column_stack():')
arr3=np.column_stack((arr1,arr2))
print(arr3)

运行结果为:

arr1:
 [[1 2 3]
 [4 5 6]
 [7 8 9]]
arr2:
 [[4 4]
 [5 5]
 [6 6]]
use np.concatenate():
[[1 2 3 4 4]
 [4 5 6 5 5]
 [7 8 9 6 6]]
use np.hstack():
[[1 2 3 4 4]
 [4 5 6 5 5]
 [7 8 9 6 6]]
use np.column_stack():
[[1 2 3 4 4]
 [4 5 6 5 5]
 [7 8 9 6 6]]

如上所示,三种函数实现的效果是一样的,但是concatenate()函数需要通过axis指明合并方向,值为1时表示在行方向上进行合并。0表示在列方向上合并,在数组纵向合并时会用到。

纵向合并- 2.10.2 -

数组的纵向合并就是在列方向上进行简单的拼接。

可以使用concatenate()、vstack()和row_stack()函数中任意一个来实现拼接,但需要确保拼接的两个数组列数应当一致。

import numpy as np
arr1=np.array([[1,2,3],[4,5,6],[7,8,9]])
arr2=np.array([[4,4,4],[5,5,5]])
print('arr1:\n',arr1)
print('arr2:\n',arr2)
print('use np.concatenate():')
arr3=np.concatenate([arr1,arr2],axis=0)
print(arr3)
print('use np.vstack():')
arr3=np.vstack((arr1,arr2))
print(arr3)
print('use np.row_stack():')
arr3=np.row_stack((arr1,arr2))
print(arr3)

运行结果为:

arr1:
 [[1 2 3]
 [4 5 6]
 [7 8 9]]
arr2:
 [[4 4 4]
 [5 5 5]]
use np.concatenate():
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [4 4 4]
 [5 5 5]]
use np.vstack():
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [4 4 4]
 [5 5 5]]
use np.row_stack():
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [4 4 4]
 [5 5 5]]