SocialCompare
Link
Website
PyPI DLs/month
GitHub Stars
Used by
Built-in units
Built-in constants
Arbitrary prefixes
np scalar array
np object array
Decimal
Fraction
Uncertainties
string
absolute °C
dB
Syntax
Comments
scipy.constants
scipy.org/...167,3857,087181,360Yes 50Yes 400 in CODATANo- no unit objects- no unit objects- no unit objects- no unit objects- no unit objects- no unit objectsNoNoconstants.c == 299792458.0Just tables of numerical constants; unit-aware calculations not supported. scipy.constants.physical_constants specifies units as strings and uncertainties. Could be used to supply other packages with coefficients.
sympy.physics.units
sympy.org/...55,4246,92418,324Yes 200?Yes- u.mega*u.meter but not u.megameterNoYes array([1, 2, 3])*u.m- converts to sympy- converts to sympycm = u.m/100
astropy.units
astropy.org/...11,3582,43513,777YesYesNoYes-YesYes15.1 * u.meter / (32.0 * u.second)
Pint
github.com/...35,7461,1281,579YesYesYes Mm, GV, etc.Yes array([1,2,3])*ureg.m or ureg.m*array([1,2,3])No ValueErrorYesYesYes built-inYesYesNoV = 1*ureg.dm**3
unyt
readthedocs.io/...24329Yes 101Yes 33Yes km4*m + 3*cm - 5*ft + 6*yard
Quantities
readthedocs.org3,917147231Yes array([1,2,3]) * pq.JNo
Units
bitbucket.org/...1,376
numericalunits
python.org/...44569Overflow issues, random set of units = not deterministic, need to do calculations twice to confirm they are being done correctly
SciMath Units
readthedocs.org/...43036Yes built-in
Buckingham
github.com/...361200Yes 53NoYesV = Number(1,dims='decimeter^3')Single file
Unum
bitbucket.org/...334
natu
github.io/...315YesYes 40YesYes m*array([1, 2, 3])Yes array([1, 2, 3])*mNoNoYesNoYesYesV = 1*dm**3weird format for dB, Hz != 1/s, "pre-release state"
misu
github.com/...308110
Magnitude
juanreyero.com/...2381631YesYesYes
udunitspy
github.com/...18820Python wrapper for UDUNITS2
scinumtools.units
github.com/...4715YesYesYesYesYesYesYesYesYesYes K, Cel, degF, degRYes dB, Np, dBm, dBmW, ... (both B and dB)quant(3, 'J').to('kg*m2/s2')
quant([5.9e-4, 5.2e+5], 'J*s-1').to('W')
33*unit('kg'), const('c')
3*unit.m/unit.s
No registries needed like for Pint. Documentation is available here: github.io/...
DimPy
cam.ac.uk/...0
Scalar
russp.us/...0
ScientificPython PhysicalQuantities
cnrs-orleans.fr/...0