数据处理中编程小技巧

1、tqdm–进度条配置

在进行数据处理的时候,想看到数据处理的进度,tqdm能基本满足需求,demo代码如下:

from tqdm import tqdm
import time

for i in tqdm(range(200)):
    # print("i={}".format(i))
    time.sleep(0.01)

运行结果:
在这里插入图片描述
实际效果需要读者自己运行看看。

参考自Python的Tqdm模块——进度条配置

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文件中的类和函数

猜你喜欢

转载自blog.csdn.net/u012949658/article/details/116309203