Следует учитывать, что X, Y, k
являются массивами NumPy, а не скалярами, и некоторые операторы для них перегружены.В частности, ==
и булево индексирование.==
будет поэлементным сравнением, а не сравнением всего массива.
Посмотрите, как это работает:
In [9]: Y = np.array([0,1,2])
In [10]: k = np.array([0,1,3])
In [11]: Y==k
Out[11]: array([ True, True, False])
Итак, результатом ==
является логический массив.
In [12]: X=np.array([0,2,4])
In [13]: X[Y==k]
Out[13]: array([0, 2])
В результате получается массив с элементами, выбранными из X
, когда условие имеет значение True
Следовательно, len(Xk)
будет количеством подходящих элементов между X
и k
.