【发布时间】:2017-11-15 17:26:00
【问题描述】:
我目前正在处理一个名为X、大小为(100,5,1) 的3d 数组。我想将随机创建的名为s、维度为(5,1) 的二维数组分配给X。我的代码如下所示。
for i in range(100):
s = np.random.uniform(-1, 2, 5)
for j in range(5):
X[:,j,:] = s[j]
我有 100 个 (5,1) 数组,它们都是一样的。我可以看到为什么我有这个结果,但我找不到解决方案。
我需要在 X 中有 100 个唯一的 (5,1) 数组。
【问题讨论】:
-
一次性创建所需大小的
100 x 5 x 13D 矩阵不是更容易吗?s = np.random.uniform(low=-1, high=2, size=(100, 5, 1))... 特别是因为每个5 x 1向量都来自相同的概率分布。为什么要单独创建 100 个5 x 1数组? -
不应该是
X[i,j,:] = s[j]吗? -
@Divakar 是的。是的,它应该。
-
是的,我刚刚意识到这是不正确的。它应该是 X[i,j,:] = s[j]。非常感谢!
标签: python arrays numpy random