numpy:沿新轴延伸数组?

Dun*_*ait 24 python arrays numpy

当然必须有办法做到这一点......我无法解决这个问题.

我有一个(9,4)数组,我想沿着第3轴重复4096次...所以它变得简单(9,4,4096),每个来自9,4阵列的值只重复4096次沿着新轴行进.

如果我可疑的3D图表有意义(对角线是z轴)

4|   /off to 4096
3|  /
2| /
1|/_ _ _ _ _ _ _ _ _ 
   1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)

干杯

编辑:只是为了澄清,这里强调的是(9,4)数组被重新设置为新轴的4096'行'.想象一个横截面 - 每个原始(9,4)阵列是4096长长方体中的一个.

Ste*_*joa 24

这是一种方式:

import scipy
X = scipy.rand(9,4,1)
Y = X.repeat(4096,2)
Run Code Online (Sandbox Code Playgroud)

如果X只给你(9,4),那么

import scipy
X = scipy.rand(9,4)
Y = X.reshape(9,4,1).repeat(4096,2)
Run Code Online (Sandbox Code Playgroud)


Pau*_*aul 9

您还可以依赖广播规则重复填充重新调整大小的数组:

import numpy
X = numpy.random.rand(9,4)
Y = numpy.resize(X,(4096,9,4))
Run Code Online (Sandbox Code Playgroud)

如果你不喜欢这种方式订购的轴,你可以转置:

Z = Y.transpose(1,2,0)
Run Code Online (Sandbox Code Playgroud)


Dav*_*idS 7

问题是超级旧的,但无论如何这里是另一个选择:

import numpy as np
X = np.random.rand(9,4)
Y = np.dstack([X] * 4096)
Run Code Online (Sandbox Code Playgroud)