我正在研究有单位的同情表达式。下面是一个简单的例子:
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