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不能使用循环
另外一个选择:
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 的零块,然后展平。