-
Python自定义异常应继承Exception而非BaseException;类名须以Error结尾,构造参数仅保留message、code、details等必要字段;仅对非预期错误抛异常,避免滥用。
-
IterativeImputer不支持分类变量,必须先数值化编码(如OrdinalEncoder)再填充,且不提供逆变换接口,填充后编码值可直接用于后续建模。
-
Python中必须用with语句处理文件,因其能确保无论是否发生异常都自动关闭文件;手动open()+close()易因异常、遗漏或提前返回导致资源泄漏。
-
DatabaseRouter类必须实现db_for_read、db_for_write、allow_relation、allow_migrate四个方法;缺一即报AttributeError;其中allow_relation和allow_migrate最易遗漏,导致跨库关联失败或迁移异常。
-
NumPy通过ndarray实现高效矩阵运算,支持元素级操作及使用@、np.dot()进行矩阵乘法,并提供np.linalg模块用于求逆、解线性方程组和特征值分析。
-
Python的with语句背后依赖的是上下文管理器协议,其核心是对象必须实现__enter__和__exit__两个特殊方法。上下文管理器协议的两个关键方法任何对象只要定义了以下两个方法,就能被with语句使用:__enter__(self):在进入with块时自动调用,通常用于资源获取(如打开文件、连接数据库),返回值会绑定到as后的变量(若无as子句,返回值被忽略)__exit__(self,exc_type,exc_value,traceback):在离开wit
-
量化交易需聚焦可预测目标(如涨跌概率、波动率),用滚动窗口验证避免过拟合,重视特征工程而非模型复杂度,并将预测结果转化为带风控的交易动作。
-
Python3.7+原生dict已保证插入顺序,OrderedDict仅在顺序敏感比较(==依赖插入顺序)和move_to_end()操作上不可替代,但内存高10%–20%、性能略低。
-
threading比multiprocessing更适合IO密集型任务,因GIL不阻塞系统调用,IO等待时线程让出CPU,其他线程可继续执行;而multiprocessing启动开销大、通信成本高,属过度设计。
-
plt.boxplot()画箱线图需注意:数据为listofarrays;vert=False实现横向布局;NaN自动跳过需手动检查;宽度反映样本量需手动计算widths;勿混用sns.boxplot();异常值阈值固定为1.5×IQR;中文标签须全局配置rcParams。
-
np.diag()一维输入生成对角矩阵,二维输入提取主对角线;误传二维数组易得错误结果;需偏移用k参数;dtype不自动继承;np.diagflat()先展平再构造,更鲁棒;大矩阵应避免显式构造以节省内存。
-
time模块基于时间戳和struct_time,datetime模块面向对象;通过时间戳可实现两者互转:time转datetime用datetime.fromtimestamp(time.mktime(struct_time)),datetime转time用dt.timestamp()或dt.timetuple()。
-
在Python中操作Parquet文件的核心工具是pyarrow。1.使用pyarrow.parquet模块的read_table和write_table函数实现Parquet文件的读写;2.利用pa.Table.from_pandas()和to_pandas()实现与Pandas的高效转换;3.处理大型文件时,可通过分块读取(iter_batches)控制内存使用;4.使用谓词下推(filters)和列裁剪(columns)提升查询效率;5.通过pyarrow.dataset模块统一管理分区数据集,并支
-
推荐使用join拼接字符串,因其性能更优、内存更省、语义更清晰;+或+=在拼接大量字符串时会产生O(n²)拷贝,而join时间复杂度接近O(n),且可读性和扩展性更好。
-
requests发起网络请求分三步:导入库、发请求、取数据;支持GET/POST、参数传递、文件上传、请求头设置、会话管理及异常处理与超时控制。