2014-03-26 43 views
5

我想創建一個類型爲long的numpy數組(即,Python的long,而不是numpy的long = int64)。使用Python的長類型的numpy數組

如果我做的:

m = np.eye(6, dtype=long) 
print(m.dtype) 

此輸出int64;即它們不是Python long s。

有什麼辦法可以創建一個numpy數組,每個元素的類型是long?或者這是numpy不支持的一些固定寬度與非固定寬度問題?如果是這樣,是否有任何圖書館(最好有一個很好的C API像numpy的)可以做到這一點?

回答

7

Python的長整數類型不是本地numpy類型,所以您將不得不 使用object數據類型。具有object類型的numpy數組的元素可以是任何python對象。

例如,

In [1]: x = np.array([1L, 2L, 3L], dtype=object) 

In [2]: x 
Out[2]: array([1L, 2L, 3L], dtype=object) 

In [3]: x[0] 
Out[3]: 1L 

In [4]: type(x[0]) 
Out[4]: long 

不管這是對您有用取決於您希望與渴望的陣列做什麼。