这个脚本以某种方式返回 True,如果我要求在哪个索引中找到这是真的,它会变得更奇怪。 我希望它检查 [-1,0] 是否是列表 mypolygon 中的元素
import numpy as np
mypolygon = np.array([[0,0],[-3,1],[-1,1],[-2,4],[1,1],[3,3],[3,-2],[0,-2],[0,0]])
point = [-1, 0]
print(point in mypolygon)
print(np.where(mypolygon == point))
打印:
正确 (数组([0, 2, 8]), 数组([1, 0, 1]))
索引如何是3维的?这是怎么回事?
point in mypolygon
检查列表和数组的交集是否不为空。例如: [999, 0] in mypolygon
返回 True
。
all
+ any
:
(mypolygon == point).all(axis=1).any(axis=0)
输出:
False
。
中级:
(mypolygon == point).all(axis=1)
# array([False, False, False, False, False, False, False, False, False])
np.where
返回至少一个坐标匹配的索引:
(mypolygon == point)
array([[False, True],
[False, False],
[ True, False],
[False, False],
[False, False],
[False, False],
[False, False],
[False, False],
[False, True]])
np.where(mypolygon == point)
(array([0, 2, 8]), array([1, 0, 1]))