вот моя проблема:. Я хотел бы создать булеву матрицу B, которая содержит True
всюду, что матрица А имеет значение, содержащееся в векторе V Один неудобное решение было бы:Как я могу реализовать команду `` ismember() `` `` mlabs в Python?
import numpy as np
>>> A = np.array([[0,1,2], [1,2,3], [2,3,4]])
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
>>> v = [1,2]
>>> B = (A==v[0]) + (A==v[1]) # matlab: ``B = ismember(A,v)``
array([[False, True, True],
[ True, True, False],
[ True, False, False]], dtype=bool)
Есть ли возможен решением, было бы более удобно, если бы А и v имели больше значений?
Cheers!
У вас есть хороший ответ на неправильный вопрос, я думаю, вы хотите, чтобы A был массивом 3x3 и возвращал значение истинности 3x3 для каждого из этих 9 элементов.Таким образом, слегка изменив ваш ответ: [[(элемент в v) для элемента в строке] для строки в A] отлично работает. Мне также интересно, почему вы ожидаете, что это будет медленным. –