-
df.drop(columns=['col'])默认返回新DataFrame而不修改原对象,需赋值或加inplace=True才生效;链式调用禁用inplace=True;Pandas2.0+正弱化inplace支持。
-
drop_duplicates需用subset指定列去重,默认保留首次出现行;不赋值或inplace=True则原数据不变;NaN默认视为相同,多列去重前须统一数据类型与列名格式。
-
Python最常用数据类型是字符串(str)、列表(list)和字典(dict):字符串不可变,支持索引切片及.upper()等方法;列表可变,支持增删改查和遍历;字典以键值对存储,key须不可变,支持多种遍历方式。
-
根本原因是pip默认超时仅15秒,而PyTorch的whl包超800MB,在网络波动时极易中断;需同时设置--timeout600、--retries5、--trusted-host及--extra-index-url官方CUDA镜像,并推荐使用带自动重试的批处理脚本。
-
zip(matrix)返回元组因默认打包为tuple,需用[list(row)forrowinzip(matrix)]转为可变列表;空矩阵时zip返回空迭代器,转list得[];不规则矩阵用嵌套推导式会报错,应先校验再转置。
-
剪枝本身不减模型体积,必须strip_pruning+h5导出才能看到磁盘大小下降:因PolynomialDecay仅加掩码,保存仍为稠密格式;strip_pruning移除mask后用h5保存,才利用零值压缩实现40–60%体积下降。
-
logging比print更专业,因其实现了Logger、Handler、Formatter三层解耦,支持多级过滤与滚动写入;basicConfig仅在root未配置时生效,模块化项目应显式创建logger及handler;RotatingFileHandler可实现按大小轮转,需设置maxBytes和backupCount;一个logger可绑定多个handler以同时输出到控制台和文件,但需分别设置各级别;日志输出需同时满足logger和handler的level,且默认propagate为True。
-
Redis是唯一能低成本、跨进程共享状态的通用方案,因INCR+EXPIRE组合可实现原子限流,而本地计数器或sleep无法跨实例同步,且SQLite等数据库不支持高并发原子计数。
-
any()函数用于判断可迭代对象中是否存在至少一个元素为真,如any([False,False,True])返回True;结合生成器表达式可高效检查条件,如any(x>10forxinnumbers)判断是否有数大于10;也可用于字符串匹配或空值检测,与all()区别在于any只需一个真值即返回True。
-
layer.get_weights()返回按创建顺序排列的numpy.ndarray列表,每个元素对应层的可训练参数;需模型已build,无参层返回空列表,推荐用[tf.keras.backend.get_value(w)forwinlayer.weights]更稳定。
-
当Django模型从Quiz重命名为CarQuizz后,原有数据库表未自动迁移或删除,导致数据“消失”——只需在新模型中通过db_table指定旧表名,即可无缝复用历史数据,无需迁移或手动搬运。
-
在Python中,sort()和sorted()的区别在于:1.sort()方法直接修改原列表,适用于不需要保留原列表的情况;2.sorted()函数返回新列表,不修改原列表,适用于需要保留原数据的场景。
-
Python内存由解释器自动管理,核心机制包括引用计数(即时释放)、垃圾回收(处理循环引用)和对象池(缓存小整数-5~256及短字符串),不可变对象可复用,可变对象每次新建,应避免频繁创建大对象并优先使用原地操作。
-
处理大文件应避免全量加载,采用流式读取、分块处理、内存映射(mmap)和生成器等策略。例如逐行迭代、pandaschunksize、np.memmap及yield替代列表累积,配合资源管理与内存监控,可稳定处理百GB级文件。
-
psutil.virtual_memory().available是最接近“真实可用内存”的字段,但它仅表示内核估算的无需换页即可满足的内存,未考虑碎片、cgroup限制或locked页面,需结合percent看趋势,容器中应读取cgroup内存路径。