
Python
楓尘林间
计算机爱好者
展开
-
python3.7的新特性——dataclass 用来代替输出dict
在这个例子中,我们定义了一个名为Point的类,它有两个属性:x和y。因此,我们可以直接print(Point(1, 2)),它会打印出Point(x=1, y=2)。它是一个工具,用于自动添加特殊方法到用户定义的类中,如__init__ ,__repr__等方法。因此,我们可以直接使用Point(1, 2)创建一个新的Point对象,而不需要手动写__init__方法。因此,我们可以直接使用Point(1, 2) == Point(1, 2),它会返回True。原创 2023-05-12 15:24:03 · 1077 阅读 · 1 评论 -
python获取当前运行程序所在目录
无原创 2022-11-16 17:39:18 · 5263 阅读 · 0 评论 -
python Selenium 使用 报错AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘
无原创 2022-11-16 16:48:53 · 5535 阅读 · 0 评论 -
python报错 AttributeError: ‘mpz‘ object has no attribute ‘to_bytes‘
无原创 2022-11-14 14:06:41 · 930 阅读 · 0 评论 -
Pytorch模型训练中的变量
突发奇想,想看pytorch中某个变量更新状态,在model初始化时:emb = []# 初始化模型参数for i,model in enumerate(models): for j,param in enumerate(model.parameters()): if i==0 and j==1: emb = param print("************",emb.shape)在模型反向传播后原创 2022-01-05 20:53:38 · 932 阅读 · 0 评论 -
python两层嵌套 [i for x in L for i in x]
大家都见过 [x for x in L ]可能没见过 [i for x in L]positive_pairs = [(1,2),(3,4),(5,6),(7,8),(70,80)]negtive_pairs = [(10,20),(30,40),(50,60),(70,80)]print([i for x in positive_pairs])结果: [range(0, 4), range(0, 4), range(0, 4), range(0, 4), range(0, 4)]p原创 2022-01-04 17:06:41 · 2244 阅读 · 4 评论 -
Linux利用jupyter的python连接oracle数据库
前提条件1.cx_Oracle包 下载地址2.oracle install client 下载链接安装步骤安装cx_Oraclecx_Oracle的下载需要对应自己的python版本如何查看python版本import sysprint(sys.version)我的是py3.6 故下载 ——>cx_Oracle-8.2.1-cp36-cp36m-manylinux1_x86_64传到服务器上后,打开anaconda的目录即XXXX/anaconda3/bin 下./p原创 2021-10-11 22:09:55 · 777 阅读 · 0 评论 -
scala python 用循环创建变量
scala参考用字典代替变量,想调用变量 用key来代替:val strMap = scala.collection.mutable.Map[String, Int]()for(j<-0 until 5) strMap+=(s"a${j}"->j*100)println(strMap("a1"))结果: 100python参考Python中的locals 方法createVar = locals()listTemp = range(1,10)for i,.原创 2021-08-25 17:16:27 · 142 阅读 · 0 评论 -
python pandas 数据探索
来源于: Kaggle Lending Club Loan Data数据可视化分析与不良贷款预测#对特征缺失值的处理计算特征缺失值比例的函数:def draw_missing_data_table(data): total = data.isnull().sum().sort_values(ascending=False) percent = (data.isnull().sum() / data.shape[0]).sort_values(ascending=False) m原创 2021-07-06 15:46:36 · 528 阅读 · 0 评论 -
tensorflow2.0 的Layer 的 call build init方法
官方API显然,这三个函数都是从tf.keras.layers.Layer处继承而来的。_init_ 可以在其中进行所有与输入无关的初始化build 知道输入张量的形状,并可以进行其余的初始化call 可以在其中进行前向计算官方API的例子:class MyDenseLayer(tf.keras.layers.Layer): def __init__(self, num_outputs): super(MyDenseLayer, self).__init__() sel原创 2021-05-12 16:31:04 · 1502 阅读 · 0 评论 -
iterrows(), iteritems(), itertuples()对dataframe进行遍历
iterrows(), iteritems(), itertuples()对dataframe进行遍历iterrows(): 将DataFrame迭代为(insex, Series)对。itertuples(): 将DataFrame迭代为元祖。iteritems(): 将DataFrame迭代为(列名, Series)对参考做梦当财神 的博客转载 2021-03-01 16:25:32 · 192 阅读 · 0 评论 -
python 将dict转换为Dataframe
def trans_dic_2_matrix(dic): return DataFrame(dic).T.fillna(0)dic = {"1": {"2":3}, "2": {"3":1}}dd = trans_dic_2_matrix(dic)dd.head()结果: 2 31 3.0 0.02 0.0 1.0dict的setdefault方法:参考:python 教程原创 2021-02-26 16:58:22 · 469 阅读 · 0 评论 -
anaconda利用sns或plt画图中文乱码问题
sns.set_style(“whitegrid”)必须注释或删除 否则改任何配置都是错的(都是血泪的教训)import seaborn as snssns.set_style({'font.sans-serif':['SimHei']})plt.rcParams ['font.sans-serif'] = ['SimHei'] #Used to display Chinese labels normallyplt.rcParams ['axes.unicode_minus'] = Fal.原创 2020-10-30 21:17:57 · 2759 阅读 · 2 评论 -
随进森林和xgb特征重要性和特征名称对应输出
# XX为df格式 train特征表feature_names = XX.columns.tolist()feature_names = np.array(feature_names)feature_importances = clf.feature_importances_indices = np.argsort(feature_importances)[::-1]x = feature_importances[show_indices],y=feature_names[indices]原创 2020-10-30 18:25:29 · 1005 阅读 · 0 评论 -
tensorflow利用saver读取部分参数变量值
做实验时到的问题:'feature_embeddings:0' not found in checkpoint当时的实验室分别训练modelA和modelB,再将B模型的参数载入到A中,具体如下图所示:modelA中包含modelB中所有参数,可以将modelA中参数载入ModelB,但是反过来则报错,具体载入语句为:# 存储saver = tf.train.Saver(max_to_keep=5) saver.save(self.sess, self.save_path + 'model.原创 2020-10-21 16:57:06 · 479 阅读 · 0 评论 -
tensorflow2.0利用keras 打印AUC指标
keras中没有对AUC的定义,需要我们自己定义:x = np.linspace(-6, 6, 200)y = np.array([0.0]*100 + [1.0]*100)state = np.random.get_state()np.random.shuffle(x)np.random.set_state(state)np.random.shuffle(y)x_train, y_train = x[0:160], y[0:160]plt.scatter(x_train, y_trai原创 2020-09-03 16:07:25 · 2777 阅读 · 0 评论 -
python 利用numpy同时打乱列表的顺序,同时打乱数据和标签的顺序
转载自: https://www.cnblogs.com/LiuXinyu12378/p/12390055.html方法一: np.random.shuffle (无返回值,直接打乱原列表)train = np.array([1,2,3,4,5])label = np.array([0,1,2,3,4])state = np.random.get_state()np.random.shuffle(train)np.random.set_state(state)np.random.shuf转载 2020-09-03 15:20:07 · 3936 阅读 · 0 评论 -
[转载]numpy的ravel() 和 flatten()函数
原文链接:https://blog.youkuaiyun.com/lanchunhui/article/details/50354978numpy的ravel() 和 flatten()函数简介首先声明两者所要实现的功能是一致的(将多维数组降位一维)。这点从两个单词的意也可以看出来,ravel(散开,解开),flatten(变平)。两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel(转载 2020-09-02 18:42:24 · 169 阅读 · 0 评论 -
python中的排序字典collections.OrderedDict()
很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类OrderedDict,实现了对字典对象中元素的排序。使用OrderedDict会根据放入元素的先后顺序进行排序。所以输出的值是排好序的。import collectionsprint("Regular dictionary")d={}d['a']='A'd['b']='B'd['c']='C'd['1'] = '1'for k,v转载 2020-08-30 18:05:05 · 977 阅读 · 0 评论 -
python 中 numpy.dtype.kind属性
numpy.dtype.kinddtype.kindA character code (one of ‘biufcmMOSUV’) identifying the general kind of data.b booleani signed integeru unsigned integerf floating-pointc complex floating-pointm timedeltaM datetimeO objectS (byte-)stringU Un原创 2020-08-24 14:54:01 · 1665 阅读 · 0 评论 -
利用numpy的argsort对list1中的排序提取list2中的元素
import numpy as nplist1 = np.array([4,1,5,8,7,9,2])list2 = np.array(["44","11","55","88","77","99","22"])# 需要从大到小 加上[::-1] sort_1 = np.argsort(list1)[::-1]res = list2[sort_1]print(res)结果:['99' '88' '77' '55' '44' '22' '11']...原创 2020-05-26 23:12:34 · 316 阅读 · 0 评论 -
[转载]python 列表转为字典的两个小方法
1、两个列表转换list1 = [‘key1’,‘key2’,‘key3’]list2 = [‘1’,‘2’,‘3’]把他们转为这样的字典:{‘key1’:‘1’,‘key2’:‘2’,‘key3’:‘3’}ist1 = ['key1','key2','key3']list2 = ['1','2','3']dict(zip(list1,list2)){'key1':'1','key2':'2','key3':'3'}2、嵌套列表转换有两种方法new_list= [['key1',转载 2020-05-26 21:45:59 · 241 阅读 · 0 评论 -
pandas 计算IV值方法
def calculateIV(train_data,label_columnName): ''' @description @param label_columnName: column name of label @return train_data: pd.DataFrame,include label test_data: pd.DataFrame ''' import math print("calcul原创 2020-05-26 16:43:01 · 1547 阅读 · 1 评论 -
python 实现 string2Index方法
import pandas as pd### d 传入是浅拷贝 只拷贝数据地址 而不是数据 当运行完d[cname] = d[cname].map(dic) 输入的d已经改变 就算没有返回值,函数外的d也发生了改变def string2index(d, cname_list): #空值不进行编号 for cname in cname_list: counts = d[cname].value_counts() s = counts.index.toli原创 2020-05-26 14:53:56 · 307 阅读 · 0 评论 -
pandas 画pearson相关系数热力图
pearson相关系数计算函数data.corr()该方法支持空值:np.nanimport seaborn as snsimport numpy as npimport matplotlib.pyplot as pltdata = pd.DataFrame({"A":[np.nan,2,9], "B":[4,14,6], "c":[987,8,9]})f, ax= plt.subplots(figsize = (14, 10))corr = data.corr()# print(原创 2020-05-25 17:03:43 · 13629 阅读 · 0 评论 -
皮尔森相关系数与方差膨胀因子介绍及关系 附python代码
1.皮尔森相关系数参考文档:https://www.zhihu.com/question/208520042.方差膨胀因子图片来源:http://sofasofa.io/forum_main_post.php?postid=1000484R²称为可决系数(Coefficient of determination)。复相关系数Ri等于:(来源百度百科)3.二者区别皮尔森相关系数:复相关系数R:图片来源:https://zhuanlan.zhihu.com/p/37605060皮尔森原创 2020-05-21 20:10:59 · 6776 阅读 · 0 评论 -
pandas 列计算log不用math.log而是np.log
计算WoE指标时:import numpy as npimport mathimport pandas as pddf_min_max_bin["ok"] = ((df_min_max_bin["nums_label_1"]+1)/sum_label_1)/((df_min_max_bin["nums_label_0"]+1)/sum_label_0) df_min_max_bin["WoE"] = math.log(df_min_max_bin["ok"])结果报错:T原创 2020-05-14 20:51:38 · 7674 阅读 · 0 评论 -
pandas df上下拼接
1. mn = ab.append(cd)ab = pd.DataFrame({"aa":[1,2,3,np.nan,np.nan],"bb":[11,22,33,44,55]})print(ab)cd = pd.DataFrame({"aa":[1,2,5,123,4546],"bb":[11,22,55,111,222]})print(cd)mn = ab.append(cd, ignore_index = True)print(mn)一定要写等式,因为append后不是覆盖ab 而是原创 2020-05-14 20:32:38 · 11047 阅读 · 1 评论 -
pandas中c列值取决于 a,b两列
pandas判断df中某个值是否为空正确使用:pd.notnull(s.iloc[1,1])错误方法:1. s.iloc[1,1].empty2.s.iloc[1,1].isnull()3.s.iloc[1,1]==np.nanpandas中c列值取决于 a,b两列例子中 bb列取决于 cc和a这两列deo = pd.DataFrame({"a":[1,2,3,np.nan,5],"bb":[0,0,0,0,0], "cc":[22,22,22,22,22]})deo.head()原创 2020-05-14 11:43:49 · 565 阅读 · 0 评论 -
df某列大于阈值 赋值为a ,小于等于阈值,赋值为b
# 天数>=15 label 为1# 天数<15 label 为0f = lambda s: 1 if s["天数"]>=15 else 0## 如果只想设置 大于阈值 小于阈值 取本身值f = lambda s: 1 if s["天数"]>=15 else s["天数"]result["label"] = result.apply(f, axis=1)result["label"].value_counts()...原创 2020-05-14 10:41:12 · 4775 阅读 · 0 评论 -
pandas df表内所有数据保留两位小数
整表保留两位小数方法import numpy as npimport pandas as pdformat="{0:.02f}".format# 或者#format = lambda x:'%.2f' % xx = x.applymap(format)x.head()注意:***通过此步骤后,所有列属性均变为object (str类型) ***原创 2020-05-11 16:52:24 · 12052 阅读 · 0 评论 -
Python创建二维数组(关于list的一个小坑)
错误做法:lists = [[]] * 3lists[0].append(3)[[3], [3], [3]]正确做法:lists = [[] for i in range(3)]lists[0].append(3)lists[1].append(5)lists[2].append(7)[[3], [5], [7]]https://www.cnblogs.com/PyLe...转载 2020-05-08 15:20:53 · 220 阅读 · 0 评论 -
pandas 选取不包含某些列的数据
1. 不包含某一个特征#取p_feature中不包含列名为index 的所有列p_feature = p_feature.iloc[:, p_feature.columns != "index"]2.不包含多个特征拓展: 选取某一列中等于或不等于某个值的dfisin()参考1:https://www.cnblogs.com/nxf-rabbit75/p/10105271.h...原创 2020-05-08 09:51:27 · 8683 阅读 · 0 评论 -
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64’).检查:https://blog.youkuaiyun.com/yi976263092/article/details/87878112原创 2020-05-07 18:57:15 · 905 阅读 · 0 评论 -
pandas 实现等频分箱
#等频分箱def frequencybox(demo, name, new_name, n): demo["tmp"] = pd.qcut(demo[name],n) group_by_age_bin = demo.groupby(["tmp"],as_index=True) df_min_max_bin = pd.DataFrame()#用来记录每个箱体的最大...原创 2020-05-06 23:21:27 · 5684 阅读 · 2 评论 -
pandas构建列名对应数据类型表dtypes 与拓展
#利用泰坦尼克数据data.head() PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S1 ...原创 2020-04-03 16:56:57 · 573 阅读 · 0 评论 -
Pandas使用总结
1.pandas修改列类型使用astype如下:df[[column]] = df[[column]].astype(type)-2.原创 2019-10-24 18:45:05 · 175 阅读 · 0 评论 -
Python,Pandas和numpy中的NaN
在处理数据时NAN值是非常常见的,但是NaN值你真的了解吗?下面让楓尘君带大家了解一下这个神奇的NAN在csv表格中长这样:在python里展示为这样:我们创建这个值时是这样:import numpy as npnp.nan但是想判断是否是np.nan还真是有点难度:a=np.nanprint(a==np.nan)结果是Falseprint(a.equal(np.na...原创 2019-10-22 20:15:31 · 4571 阅读 · 0 评论 -
Pandas给dataframe中某一行的某一个特定位置赋值loc iloc ix
pandas从dataframe中获取值可以用:import numpy as npfrom pandas import Series, DataFrameimport pandas as pddf = DataFrame({'CST_NO': [11, 22, 11, 22, 11, 22], 'AMOUNT': [10, 20, 30, np.nan...原创 2019-10-22 17:38:37 · 35947 阅读 · 4 评论 -
python两个列表同位置排序
假设有两个lista = [2,3,1,5]b = [“b”, “c”, “a”, “e”]想为a生序排列变为:sorta=[1,2,3,5]希望b对应变为:sortb=[“a”,“b”, “c”, “e”]处理方案:list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))或者:from opera...原创 2019-10-22 15:42:39 · 5332 阅读 · 1 评论