您的位置:首页 > 编程语言 > Python开发

scipy几乎实现numpy的所有函数

2017-11-19 00:41 190 查看

NumPy和SciPy的关系?

numpy提供了数组对象,面向的任何使用者。scipy在numpy的基础上,面向科学家和工程师,提供了更为精准和广泛的函数。scipy几乎实现numpy的所有函数,一般而言,如果scipy和numpy都有这个函数的话,应该用scipy中的版本,因为scipy中的版本往往做了改进,效率更高。但是,有一些同名函数,却有着不同的行为,比如log10,linalg.solve。这些不同的行为,最需要我们的注意。

scipy对numpy的“覆盖”是怎么样的?用SciPy Reference Guide中的话说,“all of the Numpy functions have been subsumed into the scipy namespace so that all of those functions are available without additionally importing Numpy.”

同时,在scipy的__init__.py中,找到了这个:

import numpy as _num

​linalg = None

from numpy import *

from numpy.random import rand, randn

from numpy.fft import fft, ifft

from numpy.lib.scimath import *

可见,reference所言不虚,但也不精准。对于两者的清晰界定,以__init__.py为准。

如果想继续深究numpy和scipy中同名函数的不同,有一个函数非常好用,那就是source,它可以用来查看源代码。通过分析源代码,自然就能很清楚的搞明白实现的不同啦。

以上可知,尽管有了scipy,numpy的用处就没多大了,但是呢,numpy还是有一定的“不可替代性”。所以,没什么特殊的要求,这样引入:

import numpy as np

import scipy as sp

import matplotlib.pyplot as plt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐