2010-11-30 18 views
0

的第二維度我有以下:使用izip超過numpy的陣列

for i in xrange(n): 
    label = labels[i] 
    frame = data[:, i] 
    dostuff() 

當數據是2- d numpy陣列。我想用izip來重寫它。

for label, frame in izip(labels, ???): 
    dostuff() 

我該用什麼來代替???才能使它工作?

+1

什麼是dostuff(),即它可以在numpy ufuncs中執行 – 2010-11-30 04:31:33

+0

是否有錯字?:data [:,i] – Kabie 2010-11-30 04:44:51

+0

@vincent,no不能在numpy中完成dostuff()。 – 2010-11-30 14:43:48

回答

3

如果你真的想使用izip(),你可以做這樣的:

for label, frame in izip(labels, data.T): 
    dostuff() 

通常建議不使用Python的循環遍歷一個NumPy的陣列,而是使用NumPy ufuncs做循環在C代碼中。如何做到這一點取決於dostuff()實際上做了什麼。

1

你可以使用:

??? = numpy.transpose(data) 

編輯:刪除第二個版本。由於轉置並不像我所設想的那樣複製陣列,所以沒有理由像我一樣瘋狂。