Работая над проблемой эквивалентности матриц, которая включает в себя множество обратных преобразований, я обнаружил неожиданное поведение, которое хотел уточнить.Я сделал все матрицы эквивалентными здесь, так как фактические преобразования не имеют никакого отношения к моей проблеме.
a = np.matrix([ 1, 1], [-1, 4]])
x = inv(a)
y = inv(a)
z = inv(a)
(x == y & z).all()
Note: x = matrix([ 0.8, -0.2],
[ 0.2, 0.2]])
, которая возвращает следующее сообщение об ошибке:
TypeError: ufunc 'bitwise_and' not supported for the input types, and the
inputs could not be safely coerced to any supported types according to the
casting rule ''safe''
Эта ошибка возникает из-за того, что &
операторы нельзя использовать с плавающей запятой?Следующие методы, кажется, возвращают правильные ответы, но я был бы признателен за ввод предпочтительного метода для данной проблемы.
(np.equal(x, y) & np.equal(y, z)).all()
True
np.equal([x,y,z], [y,z,x]).all()
True