-
SMOTE并非万能开关,常因特征未标准化、k_neighbors过大或全局调用导致precision下降、F1降低;正确做法是在imblearn.Pipeline中前置StandardScaler、设k_neighbors=3,并在交叉验证内局部重采样。
-
应显式用response.css()或xpath提取下一页URL,经response.urljoin()补全后,以scrapy.Request(callback=self.parse)发起请求;避免依赖response.follow()默认回调、硬编码start_urls或忽略去重与并发控制。
-
用@staticmethod还是@classmethod取决于是否需访问类本身:无需类或实例依赖仅逻辑封装用@staticmethod;需读取cls、调用类方法或支持子类自动适配用@classmethod。
-
Python默认用\n(LF)作换行符,但文件读写受open()的newline参数影响:文本模式自动转换,二进制模式或newline=''则原样处理;print()默认结尾加\n,可用end控制;跨平台读取时\n统一归一化是便利也是陷阱;正则中.默认不匹配\n,需re.DOTALL。
-
Anaconda管理虚拟环境的核心是用conda创建隔离Python环境并统一管理包。创建环境用condacreate-nnamepython=x.x,激活用condaactivatename,退出用condadeactivate,查看用condaenvlist,删除用condaenvremove-nname,导出复现用condaenvexport>file.yml和condaenvcreate-ffile.yml。
-
不能边循环边pd.concat,因其每次调用都复制全部已有数据,时间复杂度O(n²),易致MemoryError、CPU100%或运行骤慢;正确做法是先收集所有DataFrame到列表,再一次性concat。
-
Django需手动启用gettext翻译:设USE_I18N=True,添加LocaleMiddleware,用makemessages提取、compilemessages编译.po文件,注意路径、命名(zh_Hans)、命令参数及DEBUG模式下热加载。
-
局部变量比全局变量快2–5倍,因Python编译时确定其栈帧固定偏移,运行用LOAD_FAST索引取值;全局变量需LOAD_GLOBAL哈希查字典。用dis.dis()可验证:STORE_FAST/LOAD_FAST为局部,LOAD_GLOBAL为全局。
-
pd.read_excel读取日期变数字或乱码,因Excel用浮点数存日期且pandas不自动识别;数字型需用pd.to_datetime(x,unit="D",origin="1899-12-30")转换,中文文本需指定format或预处理,读取时用converters更可靠。
-
async-lru能直接装饰asyncdef函数,但必须用@alru_cache()(带括号),否则装饰器未生效;它基于asyncio.Lock保证并发安全,缓存键由可哈希参数生成,不支持TTL、不可哈希类型或session实例传参。
-
mask=~np.any(np.isnan(arr),axis=1)是剔除含NaN行的核心表达式,返回不含缺失值的行掩码;需确保arr为数值型dtype且axis=1正确,object类型需预处理或改用pd.isna()。
-
推荐用pathlib.rglob()遍历配置文件,配合is_file()和后缀过滤;正则替换需用re.MULTILINE和注释排除;原地修改必须先备份并校验编码;I/O密集任务优先单线程串行处理。
-
<p>Pandas循环慢是因为逐行触发Python解释器开销、类型检查和索引查找,绕开了底层NumPy的C优化;应优先使用df['col']=df['other_col']*2等向量化操作,性能可提升数十倍以上。</p>
-
np.sin、np.cos等ufunc函数对数组每个元素独立执行数学映射,不改变形状;输入须为数值型,角度需转弧度;np.exp为e^x,np.log为自然对数;广播先计算后扩展,提升性能。
-
DFA比正则更适合敏感词过滤,因其预构状态转移图后单次扫描即可完成所有匹配,时间复杂度稳定为O(n),而正则需逐条匹配、回溯频繁,词库超500条时性能断崖下降。