簡體   English   中英

有沒有一種有效的方法將numpy.ndarray轉換成列表?

[英]Is there an efficient method to convert numpy.ndarray to list?

我有一個表格的數組Y(這只是一個例子,我有一個巨大的數據在這種形式)。 該數組是使用numpy的vstack和hstack形成的(即我不想改變我獲取這個數組的方式,因為我通過一些復雜的操作獲得了它):

 Y=array([[1,  1,2],
        [1,  2,0],
        [-1, 3,1],
        [-1, 2,2]])
y=[1,1,-1,-1]
Y1=list(Y)

現在我將數據輸入到libsvm函數,該庫期望輸入參數是字典,列表或元組形式。 因此,相同的代碼是:

prob=svm_problem(y, Y1)

上面的函數拋出一個'xi應該是字典,列表或元組'的錯誤。 我知道的另一種方法是迭代地將Y轉換為列表。 這樣做的方式是:

Y1=[] 
for i in range(0, Y.shape[0]):
      Y1.append(list(Y[i])

考慮到我擁有的龐大數據,上述方法運行良好但速度很慢。 有沒有更快的方法來實現同樣的目標?

>>> Y.tolist()
[[1, 1, 2], [1, 2, 0], [-1, 3, 1], [-1, 2, 2]]

我不確定這是否會比你對大型二維數組的速度快得多。 將這樣的數組轉換為普通的列表列表是一種固有的低效操作 - 這就是你首先使用NumPy的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM