python函数中将变量名转换成字符串实例


Posted in Python onMay 11, 2020

考虑到在日常中,常常需要对模型指标输出,但涉及多个模型的时候,需要对其有标示输出,故需要将模型变量名转换成字符串。

看到的基本方法有两种:

一、方法层面:

方法1(函数内推荐):

def namestr(obj, namespace):
 return [name for name in namespace if namespace[name] is obj]
print(namestr(lr_origin,globals()),'\n',
namestr(lr_origin,globals())[0])

输出:

‘lr_origin'

方法2:

import inspect, re
def varname(p):
 for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
 m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
 if m:
 return m.group(1)
varname(lr_origin)

输出:

'lr_origin'

二、示例

采用方法1

def small_feature_model(model,X_train=X_train,y_train=y_train,X_test=X_test, y_test=y_test):
 pca = PCA(n_components=150,random_state=0,whiten=True)
 pipeline = Pipeline([('scale',StandardScaler()),('pca',pca)])
 processing = pipeline.fit(X_train)
 X_train = processing.transform(X_train)
 X_test = processing.transform(X_test)
 model.fit(X_train, y_train)
 y_pred = model.predict(X_test)
# print(namestr(model,globals()))
 print('**small-%s的准确率**: %.3f' %(namestr(model,globals())[0],accuracy_score(y_pred=y_pred, y_true=y_test)))
 small_feature_model(svm_origin)

输出

['svm_origin']
**small-svm_origin的准确率**: 0.789

for model in [svm_origin, svm_rbf, lr_origin]:
small_feature_model(model)

输出

**small-svm_origin的准确率**: 0.789
**small-svm_rbf的准确率**: 0.811
**small-lr_origin的准确率**: 0.835

采用方法2

def small_feature_model(model,X_train=X_train,y_train=y_train,X_test=X_test, y_test=y_test):
 pca = PCA(n_components=150,random_state=0,whiten=True)
 pipeline = Pipeline([('scale',StandardScaler()),('pca',pca)])
 processing = pipeline.fit(X_train)
 X_train = processing.transform(X_train)
 X_test = processing.transform(X_test)
 model.fit(X_train, y_train)
 y_pred = model.predict(X_test)
# print(namestr(model,globals()))
 print('**small-%s的准确率**: %.3f' %(varname(model),accuracy_score(y_pred=y_pred, y_true=y_test)))
 small_feature_model(svm_origin)

输出

**small-model的准确率**: 0.789

for model in [svm_origin, svm_rbf, lr_origin]:
small_feature_model(model)

输出

**small-model的准确率**: 0.789
**small-model的准确率**: 0.811
**small-model的准确率**: 0.835

补充知识:一个python实现翻转字符串的函数

实现字符串翻转的函数(python)

string = 'abcdef'
def demo1(string):
 if len(string) <= 1:
  return string
 return demo1(string[1:]) +string[0]
print(demo1(string))

中间用到了递归和切片不知道效率如何

以上这篇python函数中将变量名转换成字符串实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python random模块常用方法
Nov 03 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
python elasticsearch环境搭建详解
Sep 02 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
Python3 A*寻路算法实现方式
Dec 24 Python
利用python生成照片墙的示例代码
Apr 09 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 #Python
基于python实现获取网页图片过程解析
May 11 #Python
python将unicode和str互相转化的实现
May 11 #Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 #Python
Python urllib.request对象案例解析
May 11 #Python
python将dict中的unicode打印成中文实例
May 11 #Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 #Python
You might like
用PHP生成自己的LOG文件
2006/10/09 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
php把session写入数据库示例
2014/02/26 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
python爬取NUS-WIDE数据库图片
2016/10/05 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python绘制3D图形
2018/05/03 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
传播学毕业生求职信
2013/10/11 职场文书
家长通知书家长评语
2014/04/17 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
投资合作意向书范本
2015/05/08 职场文书
电话营销开场白
2015/05/29 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
2015党建工作简报
2015/07/21 职场文书