2013-04-08 72 views

回答

100

那麼,numpy.array只是一個方便的功能來創建一個ndarray,它不是一個類本身。

您也可以使用numpy.ndarray創建一個數組,但這不是推薦的方法。從numpy.ndarray文檔字符串:

陣列應該使用arrayzerosempty被構造...這裏給出的參數是指用於實例的陣列的 低級別方法(ndarray(...))。

大部分執行的肉是在C代碼,here in multiarray,但你可以開始在ndarray接口這裏尋找:

https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py

+1

我想陣列( )在[core/src/multiarray/methods.c]中實現(https://github.com/numpy/numpy/blob/master/numpy/core/src/mu ltiarray/methods.c)在array_getarray()中。 – flxb 2013-04-08 13:14:27

+1

這可以咬你,如果你忘記了'np.array'不是一個類,就像我經常這樣做。 'x = np.array([1,2.1,3])' 'if isinstance(x,np.array):#會給你一個TypeError' – 2017-07-11 14:53:24

29

numpy.array是返回numpy.ndarray的函數。沒有對象類型numpy.array。

5

只是例子幾行代碼,以顯示numpy.array和numpy.ndarray區別

熱身步驟:構建一個列表

a = [1,2,3] 

檢查類型

print(type(a)) 

你會得到

<class 'list'> 

使用np.array

a = np.array(a) 

構造一個陣列(從列表)或者,你可以跳過熱身一步,直接有

a = np.array([1,2,3]) 

檢查類型

print(type(a)) 

你會得到

<class 'numpy.ndarray'> 

它告訴你的numpy的陣列的類型是numpy的。ndarray

您還可以通過

isinstance(a, (np.ndarray)) 

檢查的類型,你會得到

True 

以下兩行會給你錯誤訊息

np.darray(a)     # should be np.array(a) 
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))