import sympy

Я пытаюсь найти матрицу после принятия каждого из ее значений (мод n). Я знаю, что numpy массивы прекрасно работают с этим, но я должен использовать sympy, к сожалению. Кто-нибудь знает о встроенной функции sympy, которая делает это или как-то иначе? Спасибо!

B = sympy.Matrix([[2, 3], [4, 5]])
print(B % 3)

Это моя ошибка

TypeError: unsupported operand type(s) for %: 'MutableDenseMatrix' and 'int'

С NumPy это правильный вывод:

B = np.array([[2, 3], [4, 5]])
print(B % 3)

>>> [[2 0]
    [1 2]]
2
ANTZY21 13 Мар 2018 в 01:17

2 ответа

Лучший ответ

Вы можете использовать applyfunc, чтобы применить функцию к каждому элементу: {{Х0}}

1
drilow 12 Мар 2018 в 22:22

С текущей версией SymPy это работает:

>>> import sympy
>>> B = sympy.Matrix([[2, 3], [4, 5]])
>>> print(B % 3)
Matrix([[2, 0], [1, 2]])
0
smichr 5 Июн 2019 в 03:10