如果X和Y匹配NumPy数组中的元素

时间:2016-07-16 00:36:27

标签: python arrays numpy

如何检查阵列中是否存在两个轴[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

2 个答案:

答案 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