Python實現inpolygon函式

2021-09-11 11:32:42 字數 1265 閱讀 8613

使用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...