python 将np.array作为列追加到列表并获取二维数组

7z5jn7bk  于 2023-02-21  发布在  Python
关注(0)|答案(2)|浏览(137)
trial=[]
for i in range(100):
    trial.append(np.array([1,2,5]))
trial=np.array(trial)

trial.shape的输出是(100,3)。但是我想要的是(3,100)。我知道这不是append的工作方式。你能告诉我这种添加到列表的方式吗?

ct3nt3jp

ct3nt3jp1#

我假设你有一个生成一个3元素列表固定次数的进程,如果不是这样,问题就简单多了。
你有几个选择,最简单的就是转置结果:

trial = np.array([[1, 2, 5] for _ in range(100)]).T

更有效的方法是预分配缓冲区:

trial = np.empty((3, 100), dtype='int')
for i in range(100):
    trial[:, i] = [1, 2, 5]
tjvv9vkg

tjvv9vkg2#

你要做的是沿着列轴重复相同的数组[1, 2, 5] 100次。

trial = np.repeat(np.array([1,2,5])[:, None], 100, axis=1)

相关问题