Должен ли я использовать scipy.pi, numpy.pi или math.pi?


138

В проекте с использованием SciPy и NumPy, я должен использовать scipy.pi, numpy.piили math.pi?


6
Нет, тот факт, что все эти модули предоставляют константу, говорит мне, что есть какая-то причина для этого?
Дуглас Б. Стейпл

3
Это потому, что вы не всегда используете их все, и вы не хотите устанавливать и импортировать модуль только для получения Pi.
Лев Левицкий

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

Ответы:


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

Так что не имеет значения, они все одинаковой ценности.

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


15
При прочих равных условиях я бы использовал math.piпросто потому, что он находится в стандартной библиотеке, если модуль не зависит numpyили scipyнет - но, как вы говорите, используйте pi в любом модуле, который вы импортируете для начала, потому что они все одинаковое значение.
Мгилсон

3
Если вы уже используете np.piNumPy, но не имеет смысла импортировать NumPy только piтогда, когда он включен math.
asmeurer

43

Следует отметить, что не все библиотеки будут использовать одно и то же значение для 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
Симпи Пи не хранится как константа / число с плавающей точкой, это объект, который содержит константу
Наиб

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