您的位置:首页 > 编程语言 > Python开发

2017.05.15回顾 numpy新东西学习 scoreatpercentile

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

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

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

my_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.shape
woe_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、晚上聊了会儿天,关于台湾行的事情,然后更多时间是在反省和思考,并写下了新的计划!但是感觉效率还是太低了,要效率高,就要认真就要专注,一件事一件事的干,干完一件再干另一件!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: