我有一個2D座標列表作爲NumPy數組,例如,帶滾動二維數組的zip壓縮版相當於
x = np.asarray([[0, 1],
[1, 2],
[2, 3]])
形狀(3,2)
。
現在我想壓縮這個陣列np.roll(x, 1)
獲得座標對之間(包括最近的第一個元素就行了。行的順序無關緊要畫線。
我已經發現與標準Python拉鍊的解決方案:
>>> np.asarray(list(zip(list(x[-1:]) + list(x[:-1]), x)))
array([[[2, 3],
[0, 1]],
[[0, 1],
[1, 2]],
[[1, 2],
[2, 3]]])
我如何使用numpy的功能,而無需轉換到Python的列表,以便獲得這個結果
我嘗試迄今在與NumPy的做失敗瀨rably,例如:
>>> np.dstack([x, np.roll(x, 1)])
array([[[0, 3],
[1, 0]],
[[1, 1],
[2, 1]],
[[2, 2],
[3, 2]]])
編輯:這不是試圖與任何其他陣列創建的X組合所以建議重複不是重複。
謝謝!我完全錯過了「斧頭」選項。輸出是指「從(2,3)到(0,1)畫線,從(0,1)到(1,2)等畫線」。如果x包含多邊形的所有點,則將繪製該多邊形。 –
我傳遞軸轉置,而不是dstack。 – wim
哦......這就是爲什麼我想念它:-)謝謝。當然,我從中學到了一些東西! –