导入模块numpy.math时出错

时间:2018-02-14 07:52:37

标签: python numpy

当我使用

from numpy.math import factorial as fact 

我得到:ImportError: No module named 'numpy.math'

但是

import numpy
fact=numpy.math.factorial

作品。

为什么? numpy.math真的像其他模块一样实现吗?

3 个答案:

答案 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.mathmath库没有什么不同,因此无法在无法转换的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 numpyhere in scipy.specials