unidades para hexadecimal convertir conversion binario algoritmo python units-of-measurement

para - convertir de decimal a hexadecimal en python



Conversión de unidades en Python (8)

Aplaudo el uso de unidades explícitas en aplicaciones informáticas científicas. Usar unidades explícitas es cepillarse los dientes de manera análoga. Añade algo de tedio por adelantado, pero el tipo de seguridad que obtienes puede ahorrarte muchos problemas a largo plazo. Como, digamos, no estrellar orbitadores de $ 125 millones en planetas .

También debería consultar estos otros dos paquetes de unidad / cantidad de python:

Unum

Scientific.Physics.PhysicalQuantity

Una vez investigué Scientific.Physics.PhysicalQuantity. No satisfizo mis necesidades, pero podría satisfacer las tuyas. Es difícil saber qué características necesita de su breve descripción.

Terminé escribiendo mi propio paquete de Python para conversión de unidades y análisis dimensional, pero aún no está debidamente empaquetado para su lanzamiento. Estamos utilizando mi sistema unitario en las vinculaciones de python para nuestro sistema OpenMM para la mecánica molecular acelerada de GPU. Puede navegar por el repositorio svn de mi código de unidades python en:

Unidades de Python SimTK

Finalmente, tengo la intención de empaquetarlo para su distribución. Si lo encuentras interesante, házmelo saber. Eso podría motivarme a empacarlo antes. Las características que estaba buscando cuando estaba diseñando el sistema de unidades Python SimTK incluyen lo siguiente:

  1. Las unidades NO se almacenan necesariamente en términos de unidades SI internamente. Esto es muy importante para mí, porque un área de aplicación importante para nosotros es a escala molecular. Usar unidades SI internamente puede conducir al desbordamiento del exponente en cálculos de fuerza molecular comúnmente usados. Internamente, todos los sistemas de la unidad son igualmente fundamentales en SimTK.
  2. Quería potencia y flexibilidad similares para el sistema Boost.Units en C ++. Tanto porque estoy familiarizado con ese sistema, y ​​porque fue diseñado bajo el escrutinio de un gran grupo de brillantes ingenieros. Boost.Units es un sistema de análisis dimensional de segunda generación bien diseñado. Por lo tanto, podría argumentar que el sistema de unidades SimTK es un sistema de tercera generación :). Tenga en cuenta que, si bien Boost.Units es un sistema de "cero gastos generales" sin costo de tiempo de ejecución, todas las implementaciones de cantidades python, incluidas las unidades SimTK, probablemente exigen un costo en tiempo de ejecución.
  3. Quiero cantidades dimensionadas que sean compatibles con matrices numpy, pero no necesariamente requieren el paquete python numpy. En otras palabras, las cantidades pueden basarse en matrices numpy o en tipos de python incorporados.

¿Qué características son importantes para ti?

Estoy trabajando en un proyecto que permite a los usuarios rastrear diferentes tipos de datos a lo largo del tiempo. Parte de la idea base es que un usuario debe poder ingresar datos usando cualquier unidad que lo necesite. He estado mirando ambas unidades:

http://pypi.python.org/pypi/units/

y cantidades:

http://pypi.python.org/pypi/quantities/

Sin embargo, no estoy seguro de cuál es la mejor manera de hacerlo. Por lo que puedo decir, las cantidades son más complejas, pero incluyen una mejor lista inicial de unidades.


Creo que deberías usar cantidades, porque una cantidad tiene algunas unidades asociadas.

La presión, por ejemplo, será una cantidad que podría ingresarse y convertirse en diferentes unidades (Pa, psi, atm, etc.). Probablemente podrías crear nuevas cantidades específicas para tu aplicación.


Es posible que desee ver un nuevo paquete llamado natu . Aborda los tres problemas enumerados por @ChristopherBruns. Está disponible en PyPI .

Soy el autor de ese paquete, y agradecería cualquier comentario o sugerencia.


Hay otro paquete llamado unyt del yt-project. Los autores de unyt reconocen la existencia de las unidades Pint y astropy. Las conversiones desde y hacia estos otros paquetes son compatibles.

El punto de venta de unyt es la velocidad . Es más rápido que los otros dos. Los paquetes de unidad se comparan en varios puntos de referencia en este paper .

Los puntos de referencia son decepcionantes para cualquier persona obsesionada con el rendimiento. :-( La ralentización de los cálculos con cualquiera de estos sistemas de unidades es grande. El factor de desaceleración es 6-10 para matrices con 1000 entradas (peor para matrices más pequeñas).

Descargo de responsabilidad: no estoy afiliado a unyt, solo quiero compartir lo que aprendí sobre los sistemas de unidades.


Me sorprende que nadie haya mencionado SymPy todavía. SymPy es una biblioteca matemática matemática madura y bien mantenida para Python que es, además, un proyecto NumFOCUS-sponsored .

Tiene un módulo de Physics con muchas clases útiles y funciones para "resolver problemas en física". Lo más relevante para usted es que tiene un submódulo de Unit que contiene todo lo que necesita, creo; solo lea la excelente documentación.


Parece que también ha salido otro paquete para hacer esto, escrito por Massimo DiPierro de web2py fame, llamado Buckingham .

También es importante notar que Brian ha tenido algo como esto por algún tiempo.



Tenga en cuenta que las quantities tienen un soporte muy malo para la temperatura:

>>> (100 * pq.degC).rescale(pq.degF) array(179.99999999999997) * degF >>> (0 * pq.degC).rescale(pq.degF) array(0.0) * degF

0 grados Celsius no es 0 grados Fahrenheit. Su marco no admite ningún tipo de conversión que no solo se multiplique por un factor.