跳转至

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.vstacknp.hstack

np.vstack

np.vstack 函数用于沿垂直方向(按行)堆叠数组,相当于 axis=0np.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=1np.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_stacknp.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.concatenatenp.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_ 是一种简便的按列堆叠数组的方法。

result = np.c_[arr1, arr2]
print(result)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

通过这些方法,您可以灵活地将 NumPy 数组连接在一起,以满足不同的数据处理需求。

评论