2014-09-29 94 views
1

鑑於載體a = np.array([1, 2, 3, 4, -1, 5, 6, -1, 7, 8, -1, 9])b = np.array([999, 999, 999]),我怎樣才能將載體b插入向量a之前的每個索引a持有價值-1如何在現有矢量的多個點處插入矢量?

爲了說明,我想獲得以下輸出:

array([1, 2, 3, 4, 999, 999, 999, -1, 5, 6, 999, 999, 999, -1, 7, 8, 999, 999, 999, -1, 9]) 

我一直在使用np.insert試過,但我清楚,因爲缺少的東西:

In [1]: np.insert(a, np.nonzero(a == -1)[0], b) 
Out[1]: array([ 1, 2, 3, 4, 999, -1, 5, 6, 999, -1, 7, 8, 999, -1, 9]) 

是怎麼回事?我怎樣才能解決這個問題?

回答

1

您需要重複您提供的索引來np.insert()

In [48]: np.insert(a, np.repeat(np.where(a == -1)[0], b.size), b) 
Out[48]: 
array([ 1, 2, 3, 4, 999, 999, 999, -1, 5, 6, 999, 999, 999, 
     -1, 7, 8, 999, 999, 999, -1, 9]) 
+0

你是一個很好的人,你應該覺得好;) – blz 2014-09-29 17:44:15

+0

@blz:我的榮幸。 :) – NPE 2014-09-29 17:48:43