我的代码是:
('would', None)
('research', u'noun')
('part', u'noun')
('technologies', u'noun')
('size', u'noun')
('articles', u'noun')
('analyzes', u'verb')
('line', u'noun')
我想要的输出是:
x=np.linspace(1,5,5)
a=np.insert(x,np.arange(1,5,1),np.zeros(3))
我得到的错误是:
ValueError:形状不匹配:形状(3,)的值数组不能为 广播到形状(4,)的索引结果
当我这样做时:
[1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5]
结果是:
x=np.linspace(1,5,5)
a=np.insert(x,np.arange(1,5,1),0)
为什么当我尝试插入数组时它不起作用?
P.S。我不能使用循环
答案 0 :(得分:3)
您可以使用np.repeat
来重复输入索引。对于一维数组,np.insert
的obj
参数引用各个索引。
x = np.linspace(1, 5, 5)
a = np.insert(x, np.repeat(np.arange(1, 5, 1), 3), 0)
array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
0., 0., 0., 5.])
答案 1 :(得分:2)
另一个选择:
np.hstack((x[:,None], np.zeros((5,3)))).flatten()[:-3]
给予:
array([ 1., 0., 0., 0., 2., 0., 0., 0., 3., 0., 0., 0., 4.,
0., 0., 0., 5.])
也就是说,假装x
是列向量,并在其右侧堆叠5x3的零块,然后展平。