Jupyter Notebook 恢复历史执行信息与存储执行结果
获取历史执行信息
问题
假如我们已经在 Jupyter
中编写了一些代码,但在计算后发现忘记将结果赋值了。一般在这种情况下,我们会再次执行该单元并生成结果完成赋值。
那么如何不重新运行而直接使用结果呢?
假如我们已经在 Jupyter
中编写了一些代码,但在计算后发现忘记将结果赋值了。一般在这种情况下,我们会再次执行该单元并生成结果完成赋值。
那么如何不重新运行而直接使用结果呢?
许多大模型都提供了在线 API 接口服务,我们可以在 Python 中调用它们。本文使用 openai
、chatllm
、dashscope
等包实现了对 OpenAI、讯飞星火、智谱 AI、百度、阿里通义千问的调用。用户只需在本地用 .env
文件存储 API Key 即可快速调用这些大模型。
本文使用相关系数的矩阵表达形式,实现了计算部分相关系数矩阵的加速算法,并实证检验了三种计算相关系数矩阵方法的运行速度。
.corr()
方法提速约 2180 倍,比 Numpy .corrcoef()
方法提速约 115 倍。.corrcoef()
方法比自定义的加速算法略快 \(10\%\),比 Pandas .corr()
方法快约 20 倍。@override
装饰器Python 3.12 引入了 @override
装饰器,可以用来指定该方法是用来覆盖基类方法的。
在继承基类后,如果我们想覆盖基类中的某个方法 original()
,我们可以改写该方法。然而,如果我们不小心将方法名拼写错误为 ooooriginal()
,即一个基类中不存在的方法,那么当调用子类的 original()
方法时,实际上会调用基类中的方法,而且程序不会产生错误。这种情况下,我们可能无法察觉到问题的存在。
为了解决这个问题,我们可以使用 @override
注解来明确表示方法的覆盖关系。这样程序会检查 ooooriginal()
方法是否在基类中存在。由于 ooooriginal()
方法并未在基类中定义,程序会报错,从而帮助我们发现错误。
简而言之,使用 @override
注解可以帮助我们检测覆盖方法是否正确,避免潜在的错误。
问题背景:有一个分钟级别索引的数据框,需要根据日期进行分组聚合计算。
.groupby('datetime')
无法实现按日期分组。.groupby(pd.Grouper(level='datetime', freq='D'))
会为原始数据中不存在的日期填充空值(例如,在股票数据中,周末、节假日等非交易日会被填充为空值)。.mean()
,则会出现这个问题。.transform('mean')
,则不存在这个问题。本文记录了可以正确根据日期进行分组的方法。
*
以强制调用者使用关键字参数在 Python 中,函数可以接受不同类型的参数,包括位置参数和关键字参数。位置参数必须按照特定的顺序传递给函数,而关键字参数可以根据参数名指定。
在某些情况下,我们可能希望定义一个函数,其中一部分参数只能以关键字形式指定。为此,我们可以使用独立的 *
号来分隔这些参数。
pyflyby
自动管理导入包在编写 Python
代码时,尤其是在构建复杂的项目时,你是否遇到过这些问题:
忘记 import
某个包了;
import
了很多包,但不知道哪些是可以删掉的?
在 Python
开发过程中,我们经常需要导入一些第三方包或自定义的模块。但是,手动导入这些包和模块有时候会变得非常繁琐和冗长。由 D. E. Shaw group 贡献的开源工具 pyflyby
可以自动为我们管理这些导入,帮助我们轻松解决这些问题!