2017.05.15回顾 numpy新东西学习 scoreatpercentile

来源:互联网 发布:java web start 1.4.2 编辑:程序博客网 时间:2024/06/02 00:36

1、昨天上午精神不是太好,周末玩太疯没完全恢复过来,上午主要就是解决了那天抓付款方式那个SQL的问题,我用了单步调试的方法搞清楚了表与表之间的关系,这种SQL写法感觉也是一种我不太常用的思路,而且有时候把条件写在where后面是有道理的,做一种过滤,join是无法达到那种效果的

2、下午对前置模型做了一些调整,温习了一个新的方法has_key,dict.has_key(key_name),如果有返回True,没有返回False,写了新的针对这种前置客户的在网时长判断逻辑

3、下午尝试给新的模型分进行分组,恰好用用别人的WOE工具箱,再一次学习了numpy的一些用法,直接贴代码,包括直接用numpy载入csv成二维数组,写到csv的时候要注意一下小数格式,向一个已有的二维数组中添加一列等

import numpy as npimport pandas as pdfrom information_value import WOEmy_matrix = np.loadtxt(open("C:/Users/Data/Documents/qh_td_model_find_cut.csv","rb"),delimiter=",",skiprows=1)print type(my_matrix)print my_matrix.shapewoe_inst = WOE()x = my_matrix[:,3]score_bin = woe_inst.discrete(x)new_matrix = np.c_[my_matrix,score_bin]np.savetxt('new_qh_td_model_find_cut3.csv', new_matrix, delimiter = ',',fmt='%10.5f')
np.loadtxt第一个参数是一个文件指针,这里用rb和r都可以,我实践了,delimiter分隔符,skiprows是跳过的行,跳过首行

合并一个8*3的二维数组和一个容量是8个一维数组,直接np.c_,loadtxt读取出来的小数打出来是科学计数法显示的,如果直接用savetxt写入不设定fmt参数,写出来的csv也是科学计数法表示的,需要设定参数fmt,需要进一步了解这个格式化表达式,和以前C语言是同理的,温习一下,对的,应该是通用的,%10.5f意思是10是宽度,最小显示10位,5是保留的小数位数最多5位,没有自然就不保留,大于10位不truncate

4、输出了新模型分的分组,这个时候我发现分隔point是里面的分值,当时做int数字序列分隔的时候,point并不是其中的值,而是一些小数,scipy stats scoreatpercentile中这个方法的机制还是不明确,但是WOE工具箱中的写法是没有问题,后面的值会去覆盖相当于前面是大于等于,后面是小于,还是能达到自己的需求,下一步就可以用这个score和其他变量进行矩阵分析

5、晚上聊了会儿天,关于台湾行的事情,然后更多时间是在反省和思考,并写下了新的计划!但是感觉效率还是太低了,要效率高,就要认真就要专注,一件事一件事的干,干完一件再干另一件!