Python中矩阵元素的约化系数

Python中矩阵元素的约化系数,python,python-2.7,python-3.x,matrix,sympy,Python,Python 2.7,Python 3.x,Matrix,Sympy,我想删除或最小化为1的任何数量的矩阵元素,不是指数。我希望这是在符号计算(sympy模块)中完成的 我确实尝试用subs()函数来解决这个问题,但是它也会影响指数,我希望保持指数不变 有什么建议吗?也许是这样的 from sympy import* init_printing() X = symbols('X') A = Matrix([[1, -2*X**2], [4*X, -2]]) for i in range(len(A)): if A[i].is_Number:

我想删除或最小化为1的任何数量的矩阵元素,不是指数。我希望这是在符号计算(sympy模块)中完成的

我确实尝试用
subs()
函数来解决这个问题,但是它也会影响指数,我希望保持指数不变


有什么建议吗?

也许是这样的

from sympy import*
init_printing()

X = symbols('X')
A = Matrix([[1, -2*X**2], [4*X, -2]])

for i in range(len(A)):
    if  A[i].is_Number:
        A[i] = A[i] / abs(A[i])
    else:
        A[i] = A[i].primitive()[1]
A

*编辑:允许负数

事实上,如果其中一个数字为负数,则会出现问题,因为它没有传递符号。。。用符号怎么能解决这个问题?
from sympy import*
init_printing()

X = symbols('X')
A = Matrix([[1, -2*X**2], [4*X, -2]])

for i in range(len(A)):
    if  A[i].is_Number:
        A[i] = A[i] / abs(A[i])
    else:
        A[i] = A[i].primitive()[1]
A