У меня странная проблема, которую я не могу решить. Я создал массив Numpy с именем arr
:
import numpy as np
v1 = 1
e1 = [1, 2]
arr1 = [v1, e1] # Numpy array's first element
v2 = 2
e2 = [3, 5]
arr2 = [v2, e2] # Numpy array's second element
arr = np.array([arr1, arr2]) # My Numpy array
# array([[1, list([1, 2])],
# [2, list([3, 5])]], dtype=object)
Я хочу найти позицию (и) списка [3, 5]
в массиве arr
(конечно, взяв учитывает размещение объекта list
в последнем [2-й столбец каждой строки]). Итак, я попробовал эту команду:
arr[:, 1] == [3, 5]
# array([False, False])
Однако я должен получить: array([False, True])
(список [3, 5]
существует во второй строке arr
).
Чтобы проверить, я пытался проверить равенство вручную. Все в порядке, у меня ожидаемые результаты:
arr[:, 1][0] == [3, 5] # False
arr[:, 1][1] == [3, 5] # True
Итак, почему при использовании равенства между arr
и [3, 5]
я получил array([False, False])
вместо array([False, True])
?