2012-11-22 57 views
10

我有一個使用函數numpy.append的問題。 我寫了下面的功能作爲一個更大的一段代碼,但是 ,我的錯誤是在如下因素轉載的一部分:如何使用函數numpy.append

data = [ 
     [ 
      '3.5', '3', '0', '0', '15', '6', 
      '441', 'some text', 'some more complicated data' 
     ], 
     [ 
      '4.5', '5', '1', '10', '165', '0', 
      '1', 'some other text', 'some even more complicated data' 
     ] 
     ] 

def GetNumpyArrey(self, index): 
    r = np.array([]) 
    for line in data: 
     np.append(r, float(line[index])) 

    print r 

指數< 6. 結果是:

>> [] 

什麼我做錯了嗎?

非常感謝!

+2

http://stackoverflow.com/questions/5064822/numpy-how-to-add-items-into-an-array – avasal

+0

正如@BrenBarn指出的那樣,沒有理由在這裏使用'numpy.append'。最有效的做法是首先將'r'分配給'len(data)'。如果您事先不知道長度(例如從文件中讀取),那麼@ BrenBarn建議創建列表並轉換爲數組是最好的。 – DaveP

回答

24

與列表append方法不同,numpy的append不會在原地追加。它返回一個新的數組,附加額外的元素。所以你需要做r = np.append(r, float(line[index]))。儘管如此,用這種方式構建numpy數組效率不高。最好將你的列表建立爲一個Python列表,然後在最後製作一個numpy數組。

+0

謝謝!這非常有用! –