我正在使用Ipython Notebook。我正在研究一個項目,在這個項目中我需要查看三維空間中的大約100個數據點,並計算出每個點與每個角度之間的距離。我希望看到數據點的相關性,並最終查看數據是否有任何結構(隱藏在某處的直線)。我研究了聚類技術和hough變換,但他們似乎沒有給我我需要的結果。任何想法都非常感謝..謝謝!使用Python查找3D中周圍數據點的距離和角度。查找直線
1
A
回答
1
對於確定三維點之間成對距離的第一個問題,可以使用scipy.spatial.distance.pdist()
。這將爲n個點生成n(n-1)/ 2個距離。對於第二個問題找到點之間的角度,這是棘手的。這似乎非常棘手,我甚至不想去想它;但是,爲此,您可以使用scipy.spatial.distance.cosine()
,它將確定兩個向量之間的餘弦距離。
你看過scikits嗎?我發現他們在我的工作中非常有幫助。 http://scikit-learn.org/stable/
+0
將向量對技術與此處包含的角度公式結合起來可能很有用:http://stackoverflow.com/a/1211243/401828 – heltonbiker
0
距離最好使用scipy.spatial.distance.pdist()
正如cjohnson318的回答中所述。對於一個小陣列的點「A」定義爲:
import numpy as np
a=np.array([[0,0,0],[1,1,1],[4,2,-2],[3,-1,2]])
的點之間的距離歐氏距離「d」可以發現:
from scipy.spatial.distance import pdist, squareform
D = squareform(pdist(a))
在三維極座標形式,則需要2角度來定義從一個點到另一個點的方向。看起來像一個笛卡爾單位矢量給出的方向可能也有助於你的目的。這些可以被找到:
(a-a[:,np.newaxis,:])/D[...,np.newaxis]
這將包括在對角線元素NaN,因爲沒有向量從點到它自己。如果有必要,可以使用np.nan_to_num
這些可以更改爲零如果您確實需要角度,則可以通過將np.arctan
應用於單位矢量的分量來獲取它們。
相關問題
- 1. 在python中使用內置函數查找3d距離
- 2. 查找給定距離和角度的矢量的終點的3D座標
- 3. 使用MySQL查找距離的點數
- 4. 如何查找距某點X距離的經度和緯度?
- 5. 在給定距離處沿線查找3D點
- 6. 使用地點ID查找距離
- 7. 查找兩個3D線段之間的最短距離
- 8. 查找距離最近的點在數據集中的所有點 - Python的
- 9. 查找地圖上線條和點之間的距離
- 10. 查找兩條線之間的距離
- 11. MongoDB的查詢查找緯度和經度點之間的距離
- 12. 查找三維空間中三角形的點距離
- 13. 查找MYSQL中兩點之間的距離。 (使用點數據類型)
- 14. CLLocationCoordinate2D點之間的查找距離
- 15. 如何查找矩形中心的垂直和水平距離
- 16. 使用代碼(在數據庫中存儲經緯度集合)在距離範圍內查找點
- 17. 查找角度旋轉點,使得它面對在3D空間
- 18. 查找Python中路由起點的座標距離
- 19. 使用經緯度向量查找R中的步行距離
- 20. 通過距離參考點的距離查找全部
- 21. 查找角度
- 22. Javascript:在垂直線上查找點總是在相同的距離
- 23. 用於在3D空間中查找線和點之間的距離的Java代碼
- 24. 使用WHERE子句在距經度和緯度的距離範圍內查找POI
- 25. 查找角落,團結3D
- 26. AS3:查找旋轉距離
- 27. 查找接近距離GPS
- 28. 查找距離標記
- 29. Django TastyPie Geo距離查找
- 30. 查詢以查找PostGis中的點列和點之間的距離
只需對數據點進行線性迴歸即可。 「scipy」是一個很好的包裝。 – Blender