如何检查阵列中是否存在两个轴[X, Y]
与[drawx, drawy]
匹配的元素?
我有一个 NumPy数组:
#format: [X, Y]
wallxy = numpy.array([[0,1],[3,2],[4,6]])
和另外两个变量:
#attached to a counter that increases value each loop
drawx = 3
drawy = 2
我正在使用数组作为一组位置[[0,1],[3,2],[4,6]]
,我需要测试[drawx, drawy]
(也代表一个位置)是否位于X和Y轴上的一个位置等。drawx = 4
drawy = 6
返回 true drawx = 3
drawy = 2
返回 true drawx = 4
drawy = 2
返回 false drawx = 2
drawy = 1
返回 false
答案 0 :(得分:2)
==
将广播比较,所以
wallxy = numpy.array([[0, 1],[3, 2][4, 6]])
z0 = numpy.array([3,2])
z1 = numpy.array([2,3])
(z0==wallxy).all(1).any() # True
(z1==wallxy).all(1).any() # False
我认为,这就是你要找的东西。
打印出中间步骤将有助于理解和完成类似的任务:
z0 == wallxy # checks which elements match
# array([[False, False],
# [ True, True],
# [False, False]], dtype=bool)
(z0==wallxy).all(1) # checks whether all elements of axis 1 match
# array([False, True, False], dtype=bool)
(z0==wallxy).all(1).any() # checks whether any axis 1 matches z0
# True
如果您使用z0 = numpy.array([2,3])
,那么一切都将是False
。
答案 1 :(得分:-1)
numpy没有,但列表
[3,2] in wallxy.tolist()
True