NumPy - 在指定的索引后插入一个零数组

Dan*_*jmp 6 python arrays numpy

我的代码是:

x=np.linspace(1,5,5)

a=np.insert(x,np.arange(1,5,1),np.zeros(3))
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

[1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ValueError:shape mismatch:shape(3,)的值数组无法广播到形状的索引结果(4,)

当我做:

x=np.linspace(1,5,5)

a=np.insert(x,np.arange(1,5,1),0)
Run Code Online (Sandbox Code Playgroud)

出局是:

array([1., 0., 2., 0., 3., 0., 4., 0., 5.])
Run Code Online (Sandbox Code Playgroud)

当我尝试插入数组时为什么它不起作用?

PS II不能使用循环

xnx*_*xnx 2

另外一个选择:

np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]
Run Code Online (Sandbox Code Playgroud)

给出:

array([ 1.,  0.,  0.,  0.,  2.,  0.,  0.,  0.,  3.,  0.,  0.,  0.,  4.,
    0.,  0.,  0.,  5.])
Run Code Online (Sandbox Code Playgroud)

也就是说,假装x是一个列向量,并在其右侧堆叠一个 5x3 的零块,然后展平。