Что-то вроде этого?
>>> import numpy as np
>>> a = np.zeros(3)
>>> b = np.zeros(3)
>>> a[1] = 1
>>> a == b
array([ True, False, True], dtype=bool)
для поплавков: http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.isclose.html
>>> np.isclose(a,b)
array([ True, False, True], dtype=bool)
индексы различных элементов
>>>[i for i,val in enumerate(np.isclose(a,b)) if val == False]
(используя вместо того, чтобы NumPy)
>>> np.where(np.isclose(a,b) == False)
найти значения различных элементов:
>>> d = [i for i,val in enumerate(np.isclose(a,b)) if val == False]
>>> a[d]
array([ 1.])
>>> b[d]
array([ 0.])
Спасибо. Разве цикл 'for()' дорого стоит для огромных массивов? Не существует ли какой-либо готовой функции внутри Numpy? –
это не понимание списка, а не цикл for. Вместо этого вы можете использовать вызов карты, но это не будет иметь большого значения. Http://stackoverflow.com/questions/1247486/python-list-comprehension- vs-map – user3684792
может быть, есть лучший способ в numpy, я проверил – user3684792