Чи варто використовувати scipy.pi, numpy.pi або math.pi?


137

У проекті з використанням SciPy і NumPy, я повинен використовувати scipy.pi, numpy.piабо math.pi?


6
Ні, той факт, що всі ці модулі забезпечують постійну, говорить мені, що для цього є якась причина?
Дуглас Б. Степлер

3
Це тому, що ви не завжди використовуєте їх усі, і ви не хочете встановлювати та імпортувати модуль просто для отримання Pi.
Лев Левицький

11
@LevLevitsky Я щойно почав використовувати python, і я помітив, що існує різниця між math.exp і numpy.exp (numpy.exp може взяти список, але math.exp хоче плавати). Тож я не думав, що це німе питання ...
Дуглас Б. Степлер

Відповіді:


197
>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True

Тож не важливо, вони всі однакові.

Єдина причина, що всі три модулі надають piзначення, так що якщо ви використовуєте лише один із трьох модулів, ви можете зручно мати доступ до pi, не імпортуючи інший модуль. Вони не надають різних значень для pi.


15
За інших рівних речей я б використовував math.piпросто тому, що він знаходиться в стандартній бібліотеці, якщо модуль не залежить від іншого numpyчи scipyіншого способу. Але, як ви кажете, використовуйте pi в тому модулі, який ви імпортуєте, для початку, тому що вони все те саме значення.
mgilson

3
Якщо ви вже використовуєте numpy np.pi, але не має сенсу імпортувати NumPy лише piтоді, коли він є math.
асмеурер

42

Варто зазначити, що не всі бібліотеки будуть використовувати однакове значення для pi, звичайно, тому ніколи не зашкодить дізнатися, що ви використовуєте. Наприклад, представлення символічної математичної бібліотеки Sympy pi не збігається з математикою та numpy:

import math
import numpy
import scipy
import sympy

print(math.pi == numpy.pi)
> True
print(math.pi == scipy.pi)
> True
print(math.pi == sympy.pi)
> False

9
sympy Pi не зберігається як константа / float, це об'єкт, який містить константу
Naib

22
sympy's - це точно пі, зображене символічно, для того, щоб робити символічну математику. інші - наближення з плаваючою комою для виконання математики з плаваючою комою.
ендоліт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.