-> 0. Я использую numpy 1.14.2. Возможно, в версии 15 генераторы расширены?
естировании, если массив NumPyc
является членом списка NumPy массивовCNTS
:
import numpy as np
c = np.array([[[ 75, 763]],
[[ 57, 763]],
[[ 57, 749]],
[[ 75, 749]]])
CNTS = [np.array([[[ 78, 1202]],
[[ 63, 1202]],
[[ 63, 1187]],
[[ 78, 1187]]]),
np.array([[[ 75, 763]],
[[ 57, 763]],
[[ 57, 749]],
[[ 75, 749]]]),
np.array([[[ 72, 742]],
[[ 58, 742]],
[[ 57, 741]],
[[ 57, 727]],
[[ 58, 726]],
[[ 72, 726]]]),
np.array([[[ 66, 194]],
[[ 51, 194]],
[[ 51, 179]],
[[ 66, 179]]])]
print(c in CNTS)
Я получил:
ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()
Тем не менее, ответ довольно ясен:c
это точноCNTS[1]
, такc in CNTS
должен вернуть True!
Как правильно проверить, является ли массив numpy членом списка массивов numpy?
Такая же проблема бываетпри удалении:
CNTS.remove(c)
ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()
Применение: проверить, еслиopencv
контур (массив NumPy) является членом списка контуров, см., например,Удалить контур opencv из списка контуров.