You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NumPy中从矩阵列表创建指定维度的张量?

解决方案

使用numpy.stack()并指定axis=2参数,即可将多个同维度矩阵按第三个维度拼接成目标张量,完美适配你不确定矩阵数量的场景。

基础示例代码

import numpy as np

A = np.random.rand(3,2)
B = np.random.rand(3,2)
C = np.random.rand(3,2)

# 按第三个维度堆叠矩阵
T = np.stack([A, B, C], axis=2)

验证结果:

print(T.shape)  # 输出 (3, 2, 3)
print(np.array_equal(T[:,:,0], A))  # 输出 True,确认T[:,:,0]等于A
print(np.array_equal(T[:,:,1], B))  # 输出 True,确认T[:,:,1]等于B
print(np.array_equal(T[:,:,2], C))  # 输出 True,确认T[:,:,2]等于C

动态矩阵数量的处理

如果运行前不确定矩阵数量,只需先将所有矩阵收集到列表中,再传入np.stack()即可:

import numpy as np

# 初始化列表用于收集矩阵
matrix_collection = []

# 模拟动态添加矩阵(可根据实际逻辑替换)
matrix_collection.append(np.random.rand(3,2))
matrix_collection.append(np.random.rand(3,2))
# 可继续添加更多矩阵...

# 按第三个维度堆叠所有收集到的矩阵
T = np.stack(matrix_collection, axis=2)
print(T.shape)  # 输出 (3, 2, N),N为收集到的矩阵数量

为什么原方法不符合需求

np.array([A,B,C])会默认将列表中的每个矩阵作为第一个维度的元素,因此得到的张量维度是(3, 3, 2),而np.stack()通过axis参数指定堆叠的轴,axis=2就是在第三个维度上完成拼接,正好匹配你想要的3x2xN结构。

内容的提问来源于stack exchange,提问作者Johndoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:16:06