2015-02-05 2 views

ответ

2

Что-то вроде этого?

>>> 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.]) 
+0

Спасибо. Разве цикл 'for()' дорого стоит для огромных массивов? Не существует ли какой-либо готовой функции внутри Numpy? –

+0

это не понимание списка, а не цикл for. Вместо этого вы можете использовать вызов карты, но это не будет иметь большого значения. Http://stackoverflow.com/questions/1247486/python-list-comprehension- vs-map – user3684792

+0

может быть, есть лучший способ в numpy, я проверил – user3684792

Смежные вопросы