2014-07-05 50 views
-2

我將要操作一個數組,爲每一行數據做一些計算,然後返回一個數組。 例如:是否有任何方法映射數組,並返回Python中的數組?

a = [[1,4], [2,5], [3, 6]] 
def op(x): 
    return x[0] - x[1], x[0]+x[1] 
c = map(op, a) #[(-3, 5), (-3, 7), (-3, 9)] 
d, e = zip(*c) 
print d, e 

但我發現c是元組的陣列。所以我不得不解壓縮。 有沒有辦法讓地圖返回一個數組?非常感謝。 我知道我可以通過numpy.asarray將c轉換爲數組。更好的主意?

+0

數組是一個numpy類型。你的'a'是一個列表清單。這就是你想要作爲'map'的結果值嗎? 'thefourtheye'展示瞭如何做到這一點。但是,如果有大的列表,嘗試使用Numpy數組,它們對於這種計算非常簡單和高效。 – DrV

+0

@DVV謝謝。我混淆了這個概念。我將使用numpy數組。 – football

回答

3

當你說

return a, b 

Python將建立​​一個元組並返回。所以,我們需要明確地創建一個列表,並像這樣返回它

def op(x): 
    return [x[0] - x[1], x[0] + x[1]] 
+0

非常感謝!這很酷! – football

相關問題