当前位置: 首页 > article >正文

numpy np.stack 介绍

numpy.stack函数用于沿新的轴连接数组序列。它将一系列的数组按照指定的轴堆叠在一起,创建一个新的数组。numpy.stack 是 NumPy 中用于沿着新的轴将一系列数组堆叠起来的函数。与 numpy.concatenate 不同,stack 会在指定的轴上创建一个新的维度。

函数签名

numpy.stack(arrays, axis=0)
参数说明:
  • arrays:需要堆叠的数组序列(例如列表或元组),这些数组必须具有相同的形状。
  • axis (可选):指定新轴插入的位置。默认为 0,表示在第一个轴添加新维度。
主要特点:
  • 堆叠的数组必须形状一致。
  • stack 在指定轴上引入了一个新维度,因此结果的维度会比输入数组多 1。

示例 1:基本用法

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)
  • 输入数组维度(3,) (一维数组)
  • 输出数组维度(2, 3) (二维数组)

这里我们在 axis=0(第一个维度)上创建了一个新的维度,结果是两个数组被堆叠成了二维数组。

示例 2:沿不同轴堆叠

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 沿着第二个轴堆叠
result = np.stack((a, b), axis=1)
print(result)
  • 输入数组维度(3,) (一维数组)
  • 输出数组维度(3, 2) (二维数组)

在这个例子中,axis=1 表示新的轴插入在第二个维度,因此结果的形状是 (3, 2),每个位置的两个数组元素被垂直堆叠。

示例 3:多维数组堆叠

import numpy as np

# 两个形状相同的二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 沿着新轴堆叠
result = np.stack((a, b), axis=0)
print(result)
  • 输入数组维度(2, 2) (二维数组)

  • 输出数组维度(2, 2, 2) (三维数组)

  • 轴说明: 这里我们在 axis=0 上创建了一个新的维度,因此结果是三维数组,其中两个二维数组被堆叠在一起。

维度变化
  • 输入数组形状(A, B, C, ...)
  • 输出数组形状(N, A, B, C, ...),其中 N 是堆叠的数组数量。新轴会按照 axis 参数插入到指定位置,维度数比原来多 1。

示例 4:自定义轴堆叠

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 沿着第三个轴堆叠
result = np.stack((a, b), axis=2)
print(result)

输出:

array([[[1, 5],
        [2, 6]],

       [[3, 7],
        [4, 8]]])
  • 输入数组维度(2, 2)
  • 输出数组维度(2, 2, 2)

在 axis=2 这个例子中,新的轴被插入到了最后,生成的三维数组在最后一个维度上堆叠了原始数组的元素。

总结

  • np.stack 是在指定轴上增加一个新维度,并将多个数组沿着该轴堆叠。
  • 堆叠的数组必须具有相同的形状。
  • 使用 axis 参数可以指定在哪个位置添加新维度,维度数将比原始数组多 1。

http://www.kler.cn/news/337308.html

相关文章:

  • IL2CPP和Mono的区别
  • solidity中的函数详解
  • 73.【C语言】C/C++的内存区域划分
  • [单master节点k8s部署]31.ceph分布式存储(二)
  • 医院管理新思维:Spring Boot技术应用
  • Maven 高级之分模块设计与继承、聚合
  • springboot中配置优先级
  • idea2023-快速搭建一个本地tomcat的javaWeb项目(从0到1保姆教学)
  • Ubuntu 中 Redis ,MySQL 基本使用
  • PostgreSQL技术内幕13:PostgreSQL通讯协议
  • LLM大模型学习总结
  • 基于SpringBoot+Vue的宠物店管理系统
  • Qt - ui界面点击加载一段时间后闪退
  • TryHackMe 第7天 | Web Fundamentals (二)
  • POST注入通过sqli-labs靶场less-11
  • Html批量转word工具2.1
  • 一个典型的cmakelists.txt
  • 18个Java语法糖
  • PHP 表单基础
  • erlang学习:Linux命令学习9