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数组遍历的简单实现方法小结
Apr 27 Python
详解Python多线程
Nov 14 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
Python爬虫使用代理IP的实现
Oct 27 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Python中的sys.stdout.write实现打印刷新功能
Feb 21 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
详解Python中的文件操作
Jan 14 Python
Python pyecharts绘制条形图详解
Apr 02 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
基于mysql的论坛(4)
2006/10/09 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Django models文件模型变更错误解决
2020/05/11 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
美容师的职业规划书
2013/12/27 职场文书
军训拉歌口号
2014/06/13 职场文书
中文专业求职信
2014/06/20 职场文书
机关党员公开承诺书
2014/08/30 职场文书
研究生导师推荐信
2014/09/06 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python