Numpy的数组拼接函数——hstack, vstack, stack 及concatenate的操作指南

NumPy 提供了多种数组拼接函数,用于将多个数组沿着不同的轴组合在一起。以下是其详细介绍,包括它们的语法、参数、返回值和使用示例。

 

总结

  • np.hstack:沿列方向拼接数组,要求行数相同。

  • np.vstack:沿行方向拼接数组,要求列数相同。

  • np.concatenate:更通用的拼接函数,可以沿指定轴拼接。

  • np.stack:沿新轴堆叠数组,创建更高维度的数组。

 

1. np.hstack

功能

np.hstack(水平堆叠)用于将多个数组沿水平方向(列方向)拼接在一起。要求输入的数组具有相同的行数。

语法

numpy.hstack(tup)

参数

  • tup: 元组或列表,包含要拼接的数组。

返回值

  • 返回一个新数组,它是将输入数组沿水平方向拼接后的结果。

示例

import numpy as np

# 一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.hstack((a, b))
print(result)  # 输出: [1 2 3 4 5 6]

# 二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.hstack((a, b))
print(result)
# 输出:
# [[1 2 5 6]
#  [3 4 7 8]]

2. np.vstack

功能

np.vstack(垂直堆叠)用于将多个数组沿垂直方向(行方向)拼接在一起。要求输入的数组具有相同的列数。

语法

numpy.vstack(tup)

参数

  • tup: 元组或列表,包含要拼接的数组。

返回值

  • 返回一个新数组,它是将输入数组沿垂直方向拼接后的结果。

示例

import numpy as np

# 一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.vstack((a, b))
print(result)
# 输出:
# [[1 2 3]
#  [4 5 6]]

# 二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.vstack((a, b))
print(result)
# 输出:
# [[1 2]
#  [3 4]
#  [5 6]
#  [7 8]]

3. np.concatenate

功能

np.concatenate 是一个更通用的数组拼接函数,可以沿指定的轴拼接多个数组。

语法

numpy.concatenate((a1, a2, ...), axis=0)

参数

  • a1, a2, ...: 要拼接的数组。

  • axis: 指定拼接的轴,0 表示沿行方向,1 表示沿列方向,默认为 0。

返回值

  • 返回一个新数组,它是将输入数组沿指定轴拼接后的结果。

示例

import numpy as np

# 沿行方向拼接
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.concatenate((a, b), axis=0)
print(result)
# 输出:
# [[1 2]
#  [3 4]
#  [5 6]
#  [7 8]]

# 沿列方向拼接
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.concatenate((a, b), axis=1)
print(result)
# 输出:
# [[1 2 5 6]
#  [3 4 7 8]]

4. np.stack

功能

np.stack 用于将多个数组沿新轴堆叠在一起,创建一个更高维度的数组。

语法

numpy.stack(arrays, axis=0)

参数

  • arrays: 要堆叠的数组。

  • axis: 指定新轴的位置,默认为 0。

返回值

  • 返回一个新数组,它是将输入数组沿新轴堆叠后的结果。

示例

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.stack((a, b), axis=0)
print(result)
# 输出:
# [[1 2 3]
#  [4 5 6]]

result = np.stack((a, b), axis=1)
print(result)
# 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值