1、tqdm–进度条配置
在进行数据处理的时候,想看到数据处理的进度,tqdm能基本满足需求,demo代码如下:
from tqdm import tqdm
import time
for i in tqdm(range(200)):
# print("i={}".format(i))
time.sleep(0.01)
运行结果:
实际效果需要读者自己运行看看。
2、warnning日志过滤
我是在vscode里面配置的jupyter,在训练数据集的时候报错“UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels”,后来查了下,分类问题里面(可能样本量较少)只有一种label。比如说二分类问题,label是0或1,但是在预测时只出现了一种,就会出现这个警告,不一定是代码出了问题。
解决办法:
#一种屏蔽警告的办法
import warnings
warnings.filterwarnings("ignore")
参考自UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels
3、打印日志
数据处理的时间比较长,不一定能时刻关注程序运行状况,可以在程序里面添加logging模块,记录一些关键信息。
常用的代码如下:
import logging
#确定日志格式
LOG_FORMAT="%(asctime)s - %(levelname)s - %(message)s"
#日期格式
DATE_FORMAT="%m/%d/%Y %H:%M:%S %p"
#日志文件名,自己设定
log_file='my.log'
#日志具体配置
logging.basicConfig(filename=log_file,level=logging.INFO,format=LOG_FORMAT,datefmt=DATE_FORMAT)
info="this is the infomation i want to log"
logging.info(info)
my.log文件内容如下:
> cat .\my.log
05/16/2021 10:56:19 AM - INFO - this is the infomation i want to log
>
基本能满足自己的需求。
打印的日志级别(basicConfig里面的level参数):
如果level设置为INFO,那就表格下面的级别的信息全部打印。
打印其他几种信息的函数如下:
参考博客:Python之日志处理(logging模块),这个博客写的特别详细。
4、jupyter单个shell输出多个变量
写python代码的时候,我一般用jupyter,能让代码边写边运行,能够把代码拆解,看到中间的结果(分段编程)。
jupyter配置可以看我之前的一篇博客:vscode实现jupyter(分段编程)
这里说下一个小技巧,一般一个cell只会输出最后一个变量的值,但是可以通过添加两行代码,实现所有值的输出,整体效果如下:
代码:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'
用了这个,多个变量就不用再一个一个print了。
5、python调用另一个.py文件中的类和函数
这个主要是分离常用代码用的,比如说读入数据并分离特征和标签。
可以看这个博客:python调用另一个.py文件中的类和函数