我正在研究有单位的同情表达式。下面是一个简单的例子:

from sympy.physics.units import newton, meter
atmosphere = 101325. * newton / (meter **2)

在上面的例子中,是否有一种简洁的方法来获取单位,即从变量newton / (meter **2)中获取atmosphere

最佳答案

你的方法很好,但我会用is_number替换has(Quantity)的检查

from sympy.physics.units import Quantity,
def unit(expr):
    return expr.subs({x: 1 for x in expr.args if not x.has(Quantity)})

然后它还可以与符号量一起工作,比如
g = symbols('g')
acc = g*meter/second**2
unit(acc)  # meter/second**2

10-08 11:27