python - 如何创建一个 numpy 数组,该数组对应于一个点是否在一个 numpy 多边形数组内?
问题描述
这是我的尝试,但我得到了错误
"AttributeError: 'numpy.ndarray' object has no attribute 'contains'"
。
如果你们中的任何人可以帮助我理解如何'y'
在此代码中定义它是一个 numpy 数组,其中 1 对应于包含指定点的多边形的索引,0 对应于不包含指定点的多边形的索引我会很感激。
polygonss=[]
for i in range(0, len(verts)):
polygonc = Polygon(verts[i])
print (polygonc)
polygonss.append(polygonc)
print (polygonss)
p=np.array(polygonss)
print (p)
vertsf=meshinformation_fine.celltoverticesandcentroid(0)[0]
point = Point(vertsf[0])
y=np.where(p.contains(point), 0, 1)
print (y)
解决方案
一个 numpy 对象数组在这里对你不是特别有用,你也可以用列表理解来完成这个过程
y = [p.contains(point) for p in polygonss]
但是,如果您要为大量点执行此操作,那么我鼓励您阅读geopandas,它使您能够对几何图形进行矢量化计算并将它们应用于表格数据。
推荐阅读
- xml - 多页 pdf 对每个人标签使用 fop-one 页
- arrays - 将字符数组复制到capl中的字节数组
- javascript - 父子选择,无法访问第一父(jquery)
- arduino - NodeMCU按钮上的Arduino键盘库映射错误
- javascript - WebStorm 错误:请正确指定 JavaScript 文件的路径
- r - 当第一个参数为 NULL 时,R 函数最小返回类从 posixct 更改为数字
- google-sheets - 谷歌表格的最后一行
- python - 用于从 dict 中提取所有 url 的正则表达式,如字符串
- vba - 错误 5941 VBA Word 2016 - 保存文件,从表中获取名称
- ios - 从 Android 迁移到 iOS AWS IoT