2013-03-01 38 views
2
copyto = zeros(10) 
what = ones(3) 
where = 2 
copyto[where:len(what)+where] = what 

有沒有辦法將一個較小的數組中的所有值複製到特定位置的較大數組中,而不提供較高的索引?我想它的工作方式是如何將連續值複製到陣列

copyto[where:] = what 

,但是這給了我

ValueError: operands could not be broadcast together with shapes 

謝謝!

回答

2

在作業的左側和右側,您必須具有相同形狀的數組,以便各個元素之間存在一對一的對應關係。在你的情況下,數組(查看)copyto[where:]有8個元素,而what有3個,所以你的任務沒有很好的定義。 (或者換句話說:沒有獨特的方法可以爲八個變量賦值三個值,因此賦值是不確定的。)

+0

我想你誤解了我。我正在尋找一個表達式,它將'what'中的所有項目以'where'的順序連續排列。非常類似於較長的表達式,但不需要指定較高的索引。 – 2013-03-01 19:54:36

+2

但沒有簡單的方法。如上所述,您必須在賦值的兩側都具有相同的形狀,因此您必須在示例中指定較高的索引。 – 2013-03-01 20:00:42

+0

我發佈了問題,尋找替代方法。 「沒有別的辦法」不是一個有用的答案。除此之外,問題並沒有像你陳述的那樣不明確(儘管給定的陳述是,但它只是作爲一個例子來顯示我在找什麼)。 – 2013-03-04 14:34:09