2016-03-31 31 views
4

SymPy, Jupyter dizüstü bilgisayarına bir float çıktığında, tam sayıyı toplayabileceği en iyi şekilde görüntüler. Bunu, 10'dan fazla (nano, mikro, mil, kilo, mega, giga, vs.) sayıları okumak için kullanılan bir mühendis olarak çalışmak zor buluyorum.Tüm SymPy çıkışlarını Jupyter defterine süslemeleri

Bir sayı alan ve rastgele bir doğrulukta bir sayı içeren bir dizeyi ve sonunda işlenen mühendislik önekini döndüren özel işlev to_engg().

SymPy çıktısını nasıl engellerim ve önce to_engg() işlevim aracılığıyla işlerim?

SymPy: Tamam, şimdi bu çirkin şamandıra 65722045.8015267
Me tükürmek için gidiyorum: kadar hızlı değil. İlk önce to_engg()'dan geçin.
SymPy:ptui!
Bazı sihirli burada
Jupyter olur: işte burada. Ben to_engg() kenara tıpkı diğer işlevi kullanmak böylece ben bunu düşünebildiğim 65.7 M

en yaygın yolu, dekoratörler üzerinden gerçekleştirilir.

cevap

1

SymPy isteğe bağlı kesinlik seviyelerini destekler, böylece Float('10.3', 3) gibi istediğiniz hassas sayılarla başlayabilirsiniz.

Aksi takdirde, sympy.printing.latex.LatexPrinter alt sınıfların ve istediğiniz hassasiyet (default implementation bakınız) kullanmak _print_Float geçersiz kılan bir özel yazıcısı oluşturmak gerekir ve init_printing(latex_printer=YourSubclass().doprint) kullanacağız.