2011-05-26 65 views
4

從什麼時候numpy允許你定義一個python對象數組? Objects array with numpynumpy Python對象數組

這些數組和python列表之間有什麼根本區別嗎?

這些數組和python元組之間有什麼區別?

我想在Python對象數組中使用幾個方便的numpy函數,即掩碼和基於元素的操作,並且我希望在我的分析中使用它們,但我擔心使用某個特性我無法在任何地方找到文檔。有沒有這種'對象'數據類型的任何文檔?

此功能是否準備將numpy合併到標準庫中?

回答

8

「基本」區別在於Numpy array是固定大小,而Python listdynamic array

>>> class Foo: 
... pass 
... 
>>> x = numpy.array([Foo(), Foo()]) 
>>> x.append(Foo()) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'numpy.ndarray' object has no attribute 'append' 

(你可以繞過這與numpy.concatenate,但仍numpy的陣列並不意味着作爲一個下拉更換爲list)的object

數組是非常清楚documented,但要知道,你必須通過dtype=object有時:

>>> numpy.array(['hello', 'world!']) 
array(['hello', 'world!'], 
     dtype='|S6') 
>>> numpy.array(['hello', 'world!'], dtype=object) 
array(['hello', 'world!'], dtype=object) 
+0

這裏更多的對象數組:http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html他們已經numpy的一部分從一開始。 – 2011-05-31 08:33:22