为什么导入了numpy模块后,计算结果发生了变化?
下面两段代码,结果运行不一样,想问下是什么原因?
print(sum(range(5),-1))
结果为 9
from numpy import *print(sum(range(5),-1))
结果为 10
回答:
python自带的sum
函数签名如下:
sum(iterable, [start])
后一个参数指定的是初始化值,会加到结果中去。故结果是-1+1+2+3+4=9。
numpy中sum函数签名为:
numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>)
不使用命名参数,-1传给了axis,结果为10。如果要指定初始值,这样用sum(range(1,5), initial=-1)
。
回答:
可以看一下不一定正确,原始的sum 是对两个值进行求和,而numpy.sum()此时你的-1会作为axis参数传递
@array_function_dispatch(_sum_dispatcher)def sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue,
initial=np._NoValue, where=np._NoValue):
- 测试代码
def hc(a, b=None, c=None): print("参数a",a)
print("参数b",b)
print("参数c",c)
pass
hc(range(5),-1)
输出结果
参数a range(0, 5)参数b -1
参数c None
以上是 为什么导入了numpy模块后,计算结果发生了变化? 的全部内容, 来源链接: utcz.com/p/937627.html