如何用一维数组中的值填充 nd 数组?

问题描述 投票:0回答:1

以下是

numPy
中的一个现实世界问题,已简化为基本要素,只是尺寸较小。

假设我想创建一个维度为 (10, 10, 100) 的 n 维数组

all

all = np.empty((10, 10, 100))

我还有一个一维数组

data
,这里模拟为

data = np.arange(0, 100) 

对于所有 i, j 我现在想要实现这一目标

all[i,j]=data

所以我这样做:

all[:, :]=data

当然有效。

但现在我想将

data
导入到形状为 (100, 10, 10) 的
all2
。我可以用

做到这一点
all2 = np.empty((100, 10, 10)) # new target to be populated
for i in range(100):
  for j in range(10):
    for k in range(10):
      all2[i, j, k]=data[i]

但是有没有一种更简单的方法可以在不循环的情况下做到这一点?如果不能做得更优雅,我会感到惊讶,但我不知道如何做到。

python numpy numpy-ndarray numpy-slicing
1个回答
0
投票

您可以使用转置:

all2.T[:,:] = data

© www.soinside.com 2019 - 2024. All rights reserved.