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 相关文章推荐
Django中处理出错页面的方法
Jul 15 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python读取指定字节长度的文本方法
Aug 27 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
浅析Python的命名空间与作用域
Nov 25 Python
python中类与对象之间的关系详解
Dec 16 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
js玩一玩WSH吧
2007/02/23 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
解决DataFrame排序sort的问题
2018/06/07 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python属性和内建属性实例解析
2020/01/14 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
服装设计师职业生涯规划范文
2014/02/28 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
介绍信范文大全
2015/05/07 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL