Python中文
首页
教程
问答
标签
搜索
登录
注册
提高优化问题的速度
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有下面的应用程序,优化以下pb。代码可以工作,但我发现它有点慢。有没有什么改进性能的方法(不用编写c代码)来更好地使用python、numpy和scipy?看来插值函数是最耗时的部分。在</p> <pre><code>from scipy.optimize import leastsq from scipy.interpolate import interp1d import timeit class Bond(object): def __init__(self, years, cpn): self.years = years self.coupon = cpn self.cashflows = [(0.0, -1.0)] self.cashflows.extend([(float(i),self.coupon) for i in range(1,self.years)]) self.cashflows.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>((float(self.years), 1.0 + self.coupon)) def pv(self, market): return sum([cf[1] * market.df(cf[0]) for cf in self.cashflows]) class Market(object): def __init__(self, instruments): self.instruments = sorted( instruments, key=lambda instrument : instrument.cashflows[-1][0]) self.knots = [0.0] self.knots.extend([inst.cashflows[-1][0] for inst in self.instruments]) self.dfs = [1.0] self.dfs.extend([1.0] * len(self.instruments)) self.interp = interp1d(self.knots, self.dfs) def df(self, day): return self.interp(day) def calibrate(self): leastsq(self.__target, self.dfs[1:]) def __target(self, x): self.dfs[1:] = x self.interp = interp1d(self.knots, self.dfs) return [bond.pv(self) for bond in self.instruments] def main(): instruments = [Bond(i, 0.02) for i in xrange(1, numberOfInstruments + 1)] market = Market(instruments) market.calibrate() print('CALIBRATED') numberOfTimes = 10 numberOfInstruments = 50 print('%.2f' % float(timeit.timeit(main, number=numberOfTimes)/numberOfTimes)) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>@pv的答案很可能是正确的,但是<a href="https://stackoverflow.com/questions/4295799/how-to-improve-performance-of-this-code/4299378#4299378">this answer</a>提供了一个简单的方法来确定,并表明您是否可以做进一步的工作。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
为什么我的神经网络模型的准确性不能在这个训练集上得到提高?
10 回答
为什么我的神经网络模型的权重变化不大?
3 回答
为什么我的神经网络的成本不断增加?
5 回答
为什么我的神经网络的输入pickle文件是19GB?
10 回答
为什么我的神经网络给属性错误?“非类型”对象没有属性“形状”
1 回答
为什么我的神经网络训练这么慢?
2 回答
为什么我的神经网络输出错误?
3 回答
为什么我的神经网络预测适用于MNIST手绘图像时是正确的,而适用于我自己的手绘图像时是不正确的?
9 回答
为什么我的神经网络验证精度比我的训练精度高,而且它们都是常数?
10 回答
为什么我的私人用户间聊天会显示在其他用户的聊天档案中?
3 回答
为什么我的积分的绝对误差估计值大于积分(使用scipy.integrate.nqad)?
1 回答
为什么我的积层回归器得分比它的组件差?
3 回答
为什么我的移动方法不起作用?
3 回答
为什么我的稀疏张量不能转换成张量
4 回答
为什么我的稀疏张量不能转换成张量?
1 回答
为什么我的程序“停止”了?
2 回答
为什么我的程序一直试图占用所有可用的CPU
1 回答
为什么我的程序不使用指定的代理
9 回答
为什么我的程序不工作(python帮助中的反向函数)?
4 回答
为什么我的程序不工作时,我使用多处理模块
9 回答