首页 > 解决方案 > 创建 2 个向量和 1 个矩阵的 3d 矩阵的方法

问题描述

您好,我有一个关于我在 python 中面临的问题的问题。我正在研究张量,我看到张量的每一行/列必须具有相同的大小。是否可以创建一个可能是 3d 对象或矩阵的张量,假设我们有 3 个轴:x,y,z 在 x 轴上,我想创建一个向量作为索引。所以让 x 从 0 到 N 然后在 y 轴上我想要 N 个大小为 m 的随机整数向量(其中 mm 可能吗?我的第一种方法是创建一个 Nm 的大向量和一个 (N m ,Nm)我将存储所有随机向量和矩阵的维度,然后如果我想更改例如我的第二个向量,那么我将不得不使用索引。但是,是否有另一种方法可以用我不知道的张量或 numpy 来解决这个问题?预先感谢您的建议

标签: pythonnumpytensor

解决方案


第一个向量,N = 3,[1,2, 3] 第二个 N 个长度为 m,m = 2 的向量 [[4,5], [6,7], [7,8]]

因此,N 个大小为 (m,m) 的矩阵 [[[1,1], [2,2]], [[1,1], [2,2]], [[1,1], [2,2]] ]

让我们从它们创建 numpy 数组。

import numpy as np
N = 3
m = 2
a = np.array([1,2,3])
b = np.random.randn(N, m)
c = np.random.randn(N, m, m)

你看到这里的问题了吗?根据您的定义,最后一个矩阵 c 已经有 3 个维度。

你的论点可以简化。

假设我们的最终矩阵是 - a = np.zeros((3,2,2))# 3 维,x,y,z 1) 对于第一维 -

a[0,:,:] = 0# 第一个轴,第一个索引 = 0

a[1,:,:] = 1# 第一个轴,第二个索引 = 1

a[2,:,:] = 2# 第一个轴,第三个索引 = 2

2)现在,我们需要填补其余的位置,但尺寸不匹配。

因此,最好为它们创建单独的张量。


推荐阅读