【问题标题】:way to create a 3d matrix of 2 vectors and 1 matrix创建 2 个向量和 1 个矩阵的 3d 矩阵的方法
【发布时间】:2020-03-30 10:54:54
【问题描述】:

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

【问题讨论】:

  • 你的问题不清楚,提供几个测试用例/样本以便我们理解。
  • 我想构造一个 3d 矩阵?(我不知道怎么称呼它)在 1 轴上我将有一个向量大小 N 。在 y 轴上有 N 个大小为 m (m

标签: python numpy tensor


【解决方案1】:

第一个向量,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) 现在,我们需要填充剩余的位置,但尺寸不匹配。

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

【讨论】:

  • 非常感谢您的反馈。如果你不介意,最后一个问题。假设我用我的 N 个矩阵 [维度 (m,m)] 创建了一个张量,并用我的 N 个向量 [维度 (m)] 创建了一个张量。稍后在我的程序中,我需要使用例如我的第三个矩阵和第三个向量,进行一些计算并用结果替换它们我该怎么做?我的意思是作为一种语法。我是否必须将第三个矩阵分配给一个新矩阵并将我的第三个向量分配给一个新向量,进行计算然后替换它们,或者我可以直接做吗?如果是,怎么做??
  • 如果你的维度计算正确,你绝对可以使用numpy操作。首先,我建议查看cs231n.github.io/python-numpy-tutorial/#numpy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2016-02-22
  • 1970-01-01
相关资源
最近更新 更多