作为简单数值传播全局变量的物理单位
physunits的Python项目详细描述
藻属
具有通用物理单元定义的简单包。在
安装
使用pip将这个包添加到现有的python环境中
pip install physunits
,或者按照特定于发行版的说明进行操作。在
使用
此软件包的一个示例用法是:
>>fromphysunitsimport*>>print(f"{1000*cm/um:.2f} is how many microns there are in a thousand centimeters")10000000.00ishowmanymicronsthereareinathousandcentimeters
软件包尝试只包含最常用的单位前缀,但可以生成其他单位,例如:
^{pr2}$单位前缀充当简单的全局变量。如果只需要支持单元的一个子集,则手动将它们导入为
fromphysunitsimportmm,nm,um
足够好了。在
physunits可能有用的另一个例子是以下处理电压跟踪的脚本:
importnumpyasnpimportmatplotlib.pyplotaspltfromphysunitsimport*f=2.12*kHzomega=2*np.pi*ft=np.linspace(-670*us,410*us,2**10)my_voltage=(1.5*mV)*np.sin(omega*t)# Now plot voltage in mV vs time in msplt.plot(t/ms,my_voltage/mV)plt.xlabel(r't (ms)')plt.ylabel(r'V (mV)')plt.show()
输出以下曲线图:
说明
所有单位均参考SI。这意味着base、derived、freedom(imperial)和其他包括前缀的单位总是相对于SI base units。这是manifest的一个例子是,当导入时,单元kg
采用数值1.0
,而不管前缀表示{
Unit | Supported |
---|---|
length | nm, um, mm, cm, m, km, inch, ft, yd |
time | ps, ns, us, ms, s |
mass | ng, ug, mg, g, kg, lb, oz |
temperature | nK, uK, mK, K |
angle* | deg, rad, mrad |
frequency | mHz, Hz, kHz, MHz, GHz, THz |
voltage | pV, nV, uV, mV, V, kV |
charge | C, mC, uC, nC |
current | nA, uA, mA, A |
resistance | Ohm, mOhm, kOhm, MOhm, GOhm |
capacitance | F, mF, uF, nF, pF |
inductance | H, mH, uH, nH |
magnetic field strength | T, mT, uT, nT, pT |
energy** | mJ, J, kJ, meV, eV, keV, MeV, GeV, TeV |
power | nW, uW, mW, W, kW, MW |
pressure | mPa, Pa, kPa, MPa, atm, psi, Torr, mBar, Bar |
rel concentration | ppm, ppb |
如果你想让一个单位得到支持,可以随意打开一个问题。在
- 我们all都知道,如果角度有一个国际单位制,它就是弧度,所以在
physunits
中,它取值{},并且度数是相对于它定义的。这在所有trig函数中都能很好地工作。特别感谢chrisjbillington指出这一点。在
**当电子电压(eV
)不是SI的一部分时,SI recognizes its use。此外,latest SI redefinition固定了电子电荷常数的值,有效地固定了eV
和{
联系和支持
请直接在项目的repository上报告、分叉、测试、贡献或创建问题。在
- 项目
标签: