【发布时间】:2015-03-27 03:14:24
【问题描述】:
我有一个负值范围:-30 到 -80 比方说
array_values = [-30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, -42, -43, -44, -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59, -60, -61, -62, -63, -64, -65, -66, -67, -68, -69, -70, -71, -72, -73, -74, -75, -76, -77, -78, -79, -80]
我正在评估这个表达式:|(-k).exp(array_values[idx]/k)|for idx in array_values
k=35
我遇到的问题是,在绘制此表达式后,我没有得到平滑的指数曲线。
所以我想我会检查exp(array_values[idx]/k)
这是我从计算器和 python 得到的一堆值(分别是 math.exp() 和 numpy.exp())
exp(-30/35): Calculator: 0.42437284567 Python:0.36787944117144233
exp(-31/35): 0.4124194827 0.36787944117144233
exp(-32/35): 0.40080281159 0.36787944117144233
exp(-33/35): 0.38951334871 0.36787944117144233
exp(-34/35): 0.38754187754 0.36787944117144233
是我做错了什么,还是函数中存在错误? 我的代码行是
expos = [math.exp(-i/35) for i in array_values]
【问题讨论】:
-
将您的列表元素转换为
floats。将int与int相除得到int! -
或在脚本顶部添加
from __future__ import division。 -
是的,我的大脑处于冻结状态或类似情况。这样的白痴。谢谢@igavriil
标签: python math numpy exponential