首页 > NumPy 阅读数:37

NumPy数组的连接

在 NumPy 中,利用concatenate()、stack()、hstack() 和 vstack() 等函数可实现数组的连接操作。

1. concatenate() 函数

该函数用于沿指定轴连接相同形状的两个或多个数组。使用 concatenate() 函数的方法如下:

numpy.concatenate((arr1,arr2,…,arrn),axis)

其中,参数 arr1,arr2,…,arrn 表示相同维度的数组序列;axis 表示沿着它连接数组的轴,默认为 0。

2. stack() 函数

该函数能实现沿新轴连接数组序列。此功能是 NumPy1.10.0 版本的新增功能。使用 stack() 函数的方法如下:

numpy.stack(arrays,axis)

其中,参数 arrays 表示相同形状的数组序列;axis 表示返回数组中的轴,输入数组沿着它来堆叠。

3. hstack() 函数

该函数可通过堆叠生成水平的单个数组。使用 hstack() 函数的方法如下:

numpy.hstack(arrays)

其中,参数 arrays 表示相同形状的数组序列。

4. vstack() 函数

该函数可通过堆叠生成竖直的单个数组。使用 vstack() 函数的方法如下:

numpy.vstack(arrays)

其中,参数 arrays 表示相同形状的数组序列。

5. 数组的连接示例

数组的连接示例代码 example1 如下。
# -*- coding: UTF-8 -*-
import numpy as np
arr1 = np.array([[1,2,3], [4,5,6]])        #创建数组arr1
print('第1个数组arr1:',arr1)
arr2 = np.array([['a',8,9], ['b',11,12]])  #创建数组arr2
print('第2个数组arr2:',arr2)                #注意两个数组的维度相同
#concatenate函数
print('沿轴0连接两个数组:')
print(np.concatenate((arr1, arr2)))
print('沿轴 1 连接两个数组:')
print(np.concatenate((arr1, arr2),axis=1))
#stack函数
print('沿轴 0 堆叠两个数组:')
print(np.stack((arr1, arr2),0))
print('沿轴 1 堆叠两个数组:')
print(np.stack((arr1, arr2),1))
#hstack函数和vstack函数
print('水平堆叠:')
print(np.hstack((arr1,arr2)))
print('竖直堆叠:')
print(np.vstack((arr1,arr2)))