python - 用 sympy 中的单位来表达罪过
问题描述
主要问题
问题是,当我取 30 度的罪(带单位)时,我无法使用 N 来找到数字答案。下面是一个最小的示例。
from sympy import sin, N
from sympy.physics.units import deg
N(sin(30*deg))
那么有没有
- 一种用单位来承担罪孽的方法?
- 有没有一种简单快捷的方法来移除这些单元?
已知的部分解决方案
我知道.args
获取数字的方式,但我的问题是,如果我做类似的事情
from sympy import sin, N
from sympy.physics.units import deg, rad, convert_to
number = convert_to(30*deg, rad)
number.args
这将产生一个(1/6, pi, rad)
. 但它也可以产生一个只有两部分的元组。因此,要将所有内容分开,我需要一个完整的其他功能。
解决方案
除了使用单位,您可以只使用数字吗?
>>> from sympy.geometry.polygon import rad, deg
>>> rad(30) # instead of 30*deg
pi/6
>>> deg(pi)
180
否则,要进行从单位到数字的质量转换,您可以将任何Mul
具有单位的内容更改deg
为rad(Mul/deg)
:
>>> from sympy.physics.units import deg
>>> cos(30*deg)
cos(30*deg)
>>> cos(rad(30))
sqrt(3)/2
>>> pats = lambda x:x.is_Mul and x.has(deg), lambda x: rad(x/deg)
>>> cos(30*deg).replace(*pats)
sqrt(3)/2
推荐阅读
- c# - Visual Studio 2019 Preview 5.0 集合视图单元格必须具有重用标识符
- api - 如何使用 betfair API 显示赔率(后退/下注/平局)
- java - SpringBoot ResourceBundleMessageSource 与外部远程文件
- python - 有没有一种简单的方法可以将第一个之前的值包含在最后一个数据框中?
- python - 如何处理包含混合数据类型的熊猫数据框?
- intellij-idea - 有没有办法在 IntelliJ 项目视图中突出显示有问题的文件
- r - 箱线图问题
- shell - 跨不同命令传递初始标准输入
- build - 盖茨比启动器无法构建
- docker-swarm - Traefik + Docker Swarm 模式