2017-02-20 18 views
1

Я хотел бы знать, как преобразовать значение sympy с физической единицей в один и тот же блок с другим префиксом. Например:Как преобразовать префиксы модулей в Sympy

>>> import sympy.physics.units as u 
>>> x = 0.001 * u.kilogram 
0.001kg 

следует преобразовать в граммы. Подход, который я сделал до сих пор, очень раздутый и приводит к неправильному результату.

>>> x/u.kilogram * u.gram 
1.0^-6kg 

Это должно быть 1g.

ответ

1

Если вы можете принять печать 1 вместо 1g, вы могли бы просто использовать деление:

>>> x/u.g 
1.0 

В противном случае, вы бы лучше переключиться на sympy.physics.unitsystems.

>>> from sympy.physics.unitsystems import Quantity 
>>> from sympy.physics.unitsystems.systems import mks 
>>> Quantity(0.001, mks['kg']) 
0.001kg 
>>> _.convert_to(mks['g']) 
1g 
+0

Благодарим за быстрый ответ. Это похоже на решение для меня. К сожалению, в 'mks' есть много единиц, которые не позволяют мне определить необходимые единицы, прежде чем использовать их в« количествах ». Мне кажется неудобным по сравнению с, например, [Pint] (https://pint.readthedocs.io/) – MrLeeh