2017-10-13 49 views
0

我想創建一個具有3列(不是真正的)的numpy數組,最後一列將是可變長度列表(真的)。使用列表設置數組元素

N = 2 
A = numpy.empty((N, 3)) 
for i in range(N): 
    a = random.uniform(0, 1/2) 
    b = random.uniform(1/2, 1) 
    c = [] 
    A[i,] = [a, b, c] 

在整個執行過程中,我會追加或刪除列表中的項目。我用numpy.empty來初始化數組,因爲這應該給一個對象類型,即使如此我得到'設置序列錯誤數組'。我知道我是,那就是我想要做的。

有關此主題的以前的問題似乎是爲了避免錯誤;我需要繞開這個錯誤。真正的數組有1M +行,否則我會考慮一個字典。想法?

+0

「我用numpy.empty來初始化數組,因爲這應該給一個對象類型」 - 什麼?不。如果你想要一個對象dtype的數組,用'dtype = object'告訴它你想要的那個。 – user2357112

+0

'np.empty'的默認dtype是float。檢查一個試驗'A'。 – hpaulj

+0

太棒了!感謝您糾正我的錯誤觀念。 A = numpy.empty((N,3))。astype(object)起作用。 – zazizoma

回答

0

初始化A

A = numpy.empty((N, 3), dtype=object) 

numpy.empty docs。這比A = numpy.empty((N, 3)).astype(object)更合乎邏輯,它首先創建一個浮點數組(默認數據類型),然後纔將其轉換爲對象類型。

相關問題