python - 如何简洁地获取 Sympy 表达式的单位
问题描述
我正在使用具有单位的 Sympy 表达式。这是一个简单的例子:
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
推荐阅读
- iot - Raspberry Pi 上的 IoT Edge - 使用 GPIO 驱动程序
- python - 如何启动 Windows 终端作为调试 Python 文件的外部终端?
- terraform - 创建 aws_api_gateway_account 资源返回 AccessDeniedException
- reactjs - 如何从 HOC 重新渲染孩子的价值
- go - Sarama Kafka 库:如何对消费者组的 session.MarkMessage() 进行单元测试?
- laravel - laravel 7 验证唯一的多列
- python-3.x - 你好,我正在制作一个网页抓取 python 脚本来遍历整个 HTML。现在只需要第一个
- java - Jackson deserilizer 未使用 kotlin 协程在 webflux 中注册
- css - Safari 是否有 CSS 位置动画错误?
- python - 在每次重复中选择满足条件的 ID