当我使用
时from numpy.math import factorial as fact
我得到:ImportError: No module named 'numpy.math'
但是
import numpy
fact=numpy.math.factorial
作品。
为什么? numpy.math真的像其他模块一样实现吗?
答案 0 :(得分:3)
numpy似乎导入标准math
库:
In [8]: import numpy
In [9]: import math
In [10]: math is numpy.math
Out[10]: True
所以它不是numpy的子模块,只是一个导入的模块对象。这就是为什么你不能这样导入:from numpy.math import something
。
答案 1 :(得分:1)
不需要numpy,只需使用
from math import factorial as fact
答案 2 :(得分:1)
Arpad Horvath的回答已经表明,numpy.math
与math
库没有什么不同,因此无法在无法转换的numpy数组上工作对标量。但您可以使用scipy.misc.factorial
:
import scipy.misc
a = np.arange(5)
print(scipy.misc.factorial(a))
#output
#[ 1. 1. 2. 6. 24.]
这在scipy 1.0.0中已弃用,但仍然有效。请改用scipy.special.factorial
为数组实现的其他数学函数是listed here in numpy
和here in scipy.specials