2014-06-16 80 views
2

我有經度和緯度兩個獨立的陣列座標:從緯度(緯度,經度)的所有可能的點/經度在單獨的數組座標

a = np.array([71,75]) 
b = np.array([43,42]) 

我如何可以輕鬆地找到彌補這些所有可能的點座標?

我一直插科打諢與itertools.combinations:

In [43]: 

list(itertools.combinations(np.concatenate([a,b]), r=2)) 

Out[43]: 

[(71, 75), (71, 43), (71, 42), (75, 43), (75, 42), (43, 42)] 

但是這並不適合我,因爲點(71,75)(43,42)是緯度/經度和緯度/經度對。

我想有是這樣的:

Out[43]: 

    [(71, 43), (71, 42), (75, 43), (75, 42)] 

A和B陣列最終將是一個更大的尺寸,但將保持相同的大小,因爲它們的緯度/經度對。

+1

你的問題的到底是不是那麼清楚。你能提供一些你期望的例子嗎? – daouzli

+0

[使用numpy構建兩個數組的所有組合的數組]的可能的重複(http://stackoverflow.com/questions/1208118/using-numpy-to-build-an-array-of-all-combinations-of -two-arrays) – huon

回答

5

你想要的是itertools.product()在循環只需要做兩:

list(product(a, b)) 
#[(71, 43), (71, 42), (75, 43), (75, 42)] 
+0

這正是我期待的! – pbreach

0

對於嵌套走兩個數組 for i=0 to len(a) do for j=0 to len(b) do out.add(coordinate(a[i],b[j]);

+0

我不確定我是否理解這個答案。座標函數在做什麼,它來自哪裏? – pbreach

+1

我相信你不需要任何「座標」功能,只需將'a [i],b [j]'一個元組或列表和'append'(而不是'add')添加到'out'。 – heltonbiker

+0

我剛做了一個叫「座標」的課,@heltonbiker說的是個好主意。 –