使用python實現matlab中inpolygon函式。
# coding=utf8
import numpy as np
from matplotlib.path import path
definpolygon
(xq, yq, xv, yv)
:"""
reimplement inpolygon in matlab
:type xq: np.ndarray
:type yq: np.ndarray
:type xv: np.ndarray
:type yv: np.ndarray
"""# 合併xv和yv為頂點陣列
vertices = np.vstack(
(xv, yv)).t
# 定義path物件
path = path(vertices)
# 把xq和yq合併為test_points
test_points = np.hstack(
[xq.reshape(xq.size,-1
), yq.reshape(yq.size,-1
)])# 得到乙個test_points是否嚴格在path內的mask,是bool值陣列
_in = path.contains_points(test_points)
# 得到乙個test_points是否在path內部或者在路徑上的mask
_in_on = path.contains_points(test_points, radius=-1e
-10)# 得到乙個test_points是否在path路徑上的mask
_on = _in ^ _in_on
return _in_on, _on
if __name__ ==
'__main__'
: xv = np.array([-
4,0,
4,0]
) yv = np.array([0
,4,0
,-4]
) x = np.array([0
,1,3.5,4
,5])
y = np.array([0
,1,0
,0,0
])_in, _on = inpolygon(x, y, xv, yv)
print _in, _on
x和y中的值一一對應組成測試點,xv和yv中的值一一對應組成閉合路徑。 python實現線性回歸 python實現線性回歸
參考 機器學習實戰 machine learning in action 一 必備的包 一般而言,這幾個包是比較常見的 matplotlib,用於繪圖 numpy,陣列處理庫 pandas,強大的資料分析庫 sklearn,用於線性回歸的庫 scipy,提供很多有用的科學函式 我一般是用pip安裝,...
python爬蟲基礎實現 Python實現基礎爬蟲
初次使用urllib實現爬蟲的資料請求 urllib.request.urlopen url 發起get請求 urllib.parse.quote 將中文進行url編碼 from urllib.request importurlopen,urlretrieve,requestfrom urllib....
python實現快取 Python實現快取
注意 本文是乙個存根。稍會將發布有關不同的簡單快取實現的更詳細分析。請參閱下面的註解獲得大致的摘要。簡單快取實現 用法 注意,該實現使用普通列表來跟蹤訪問順序,以便能夠在快取填滿時丟棄最近最少使用的專案。列表型別沒有真正為此目的而優化,但是這種方法對於較小的快取非常有效,特別是當快取訪問遵循80 2...