NumPy连接数组
在 NumPy 中,可以使用多种方法来连接数组。这些方法可以用于将多个数组沿指定轴连接在一起。以下是常用的方法及详细示例:
np.concatenate
np.concatenate
函数用于沿现有轴连接数组。需要指定 axis
参数。
import numpy as np
# 一维数组的连接
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.concatenate((arr1, arr2))
print(result) # 输出: [1 2 3 4 5 6]
# 二维数组的连接
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.concatenate((arr1, arr2), axis=0)
print(result)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
result = np.concatenate((arr1, arr2), axis=1)
print(result)
# 输出:
# [[1 2 5 6]
# [3 4 7 8]]
np.vstack
和 np.hstack
np.vstack
np.vstack
函数用于沿垂直方向(按行)堆叠数组,相当于 axis=0
的 np.concatenate
。
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.vstack((arr1, arr2))
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
np.hstack
np.hstack
函数用于沿水平方向(按列)堆叠数组,相当于 axis=1
的 np.concatenate
。
arr1 = np.array([[1], [2], [3]])
arr2 = np.array([[4], [5], [6]])
result = np.hstack((arr1, arr2))
print(result)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
np.dstack
np.dstack
函数用于沿深度方向(第三个轴)堆叠数组。
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.dstack((arr1, arr2))
print(result)
# 输出:
# [[[1 5]
# [2 6]]
# [[3 7]
# [4 8]]]
np.stack
np.stack
函数用于沿新轴连接数组。axis
参数用于指定新轴的位置。
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.stack((arr1, arr2), axis=0)
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
result = np.stack((arr1, arr2), axis=1)
print(result)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
np.column_stack
和 np.row_stack
np.column_stack
np.column_stack
函数用于按列堆叠一维数组为二维数组。
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.column_stack((arr1, arr2))
print(result)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
np.row_stack
np.row_stack
函数用于按行堆叠一维数组为二维数组。
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.row_stack((arr1, arr2))
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
np.concatenate
和 np.r_
、np.c_
的对比
np.r_
np.r_
是一种简便的按行堆叠数组的方法。
result = np.r_[arr1, arr2]
print(result)
# 输出: [1 2 3 4 5 6]
result = np.r_[[1, 2, 3], [4, 5, 6]]
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
np.c_
np.c_
是一种简便的按列堆叠数组的方法。
通过这些方法,您可以灵活地将 NumPy 数组连接在一起,以满足不同的数据处理需求。