2013-05-27 16 views
1

我得到了包含x,y座標的2x1數組列表。 所以它看起來像[np.array([x,y]), np.array([x,y]), np.array([x,y]), ...]從堆疊數組中獲取所有x值? Python

現在我想要一個列表或數組將包含所有的x值和一個所有的y值。 但是,像list[:][1]這樣的操作不起作用。

任何想法如何做到這一點?

+0

[numpy的陣列切片unxpected結果](可能重複http://stackoverflow.com/questions/16627891/numpy -array-slicing-unxpected-results) – BrenBarn

+2

請問你如何解決這個數據結構?如果你可以控制它並且可以使用二維數組,那麼'x,y = list_2d.T'就可以工作。 – DSM

回答

3
>>> import numpy as np 
>>> L = [np.array([1, 2]), np.array([3, 4]), np.array([5, 6])] 
>>> X = [a[0] for a in L] 
>>> Y = [a[1] for a in L] 
>>> X 
[1, 3, 5] 
>>> Y 
[2, 4, 6] 

如@DSM指出,可以轉列表,以及:

>>> X, Y = map(list, zip(*L)) 
>>> X 
[1, 3, 5] 
>>> Y 
[2, 4, 6] 
+0

另一種選擇是'X = map(lambda a:a [0],L)'。 – ValarDohaeris

+0

或舊的'X,Y = zip(* L)'技巧,至少元組輸出是否足夠。 – DSM

+0

@DSM提交作爲答案,它更好 – jamylak