establecer el umbral de notación científica predeterminado de ipython

¿Cómo puedo modificar el punto en el que Python decide imprimir en notación científica?

Por ejemplo, me gustaría que todo > 1e4 o < 1e-4 se imprima en notación científica.

Bueno:

 In [11]: 5e20 Out[11]: 5e+20 

Malo:

 In [12]: 5e10 Out[12]: 50000000000.0 

En IPython puedes usar

 %precision %.4g 

esto imprimirá valores de punto flotante cuyo valor absoluto es <1e-4 o> = 1e4 en notación científica.

Puede encontrar más información sobre el comando %precision en los documentos API de IPython . Para las opciones de formato de cadena, eche un vistazo a los documentos de Python

En realidad, no tiene nada que ver con IPython, ya que simplemente llama __str__ . Lamentablemente, el float , al ser un tipo integrado, se implementa en C y no se pueden hacer monturas de mono de los tipos C. Así que sus únicas opciones son modificar la implementación de __str__ en cpython o parchear IPython para que sea más inteligente que solo llamar a __str__ .