pip3 install --upgrade pip --user 升级pip到最新版本
pip配置清华源
参考: https://www.cnblogs.com/sky-ai/p/9800036.html
pandas判断是否是空项要使用pd.isnan()而绝对不能使用np.NaN == xx,
参考https://blog.csdn.net/weixin_41712499/article/details/82719987
print(np.NaN == np.NaN)
#结果为False!!!
pandas显示不完整问题/科学计数法问题(python3.7.3)
import pandas as pd
#设置显示的最多行数(这里设置为200)
pd.set_option('display.max_rows', 200)
#显示的所有行
pd.set_option('display.max_rows', None)
#设置显示的最多列数
pd.set_option('display.max_columns', 200)
#显示所有列
pd.set_option('display.max_columns', None)
#(每)一列(的每一项)显示的最大字符数
pd.set_option('max_colwidth',200)
pandas.Series.where方法和pandas.Series.mask方法
def where(
self,
cond,
other=np.nan,
inplace=False,
axis=None,
level=None,
errors="raise",
try_cast=False,
):
...
#如果 cond 为真,保持原来的值,否则替换为other
def mask(
self,
cond,
other=np.nan,
inplace=False,
axis=None,
level=None,
errors="raise",
try_cast=False,
):
...
return self.where(
self,
cond,
other=np.nan,
inplace=False,
axis=None,
level=None,
errors="raise",
try_cast=False,
)
@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。 类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。
普通对象方法至少需要一个self参数,代表类对象实例
类方法有类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。 对于类方法,可以通过类来调用,就像C.f(),有点类似C++中的静态方法, 也可以通过类的一个实例来调用,就像C().f(),这里C(),写成这样之后它就是类的一个实例了。
静态方法则没有,它基本上跟一个全局函数相同,一般来说用的很少
python 定义类
class A:
def __init__(self, arg=1):
A.arg = arg
# self.arg = arg
class B:
def __init__(self, arg=2):
B.arg = arg
# self.arg = arg
# 基本的定义方式 class + 类名 + :
# class ClsName:
# 没有参数的话,括号可加可不加
# class ClsName():
# class ClsName(object):
# 如果是继承的话, 括号里跟的是父类,默认的父类都是object,可以省略
# !!!! 注意: 继承的话,如果没有__init__函数,那么会依次从左到右执行父类的__init__函数
# pass关键词:使用pass关键字,表示一个占位符,在程序运行时,此处不会执行任何操作,也能保证程序逻辑的正确性
class ClsName(A, B):
def __init__(self, arg=3):
# self.arg = arg
pass
# 符号*前面的参数可以带args=也可以不带, *后面的参数必须要带key=
def f1(self, args='a1', *, key='1'):
self.args = args
self.key = key
return A.arg
if __name__ == '__main__':
A() # 初始化A,类变量A.arg赋值完成,如果没有这行代码,print(a.f1())会报错
a = ClsName()
a.f1('a2', key='2')
# 类的方法__mro__可以查看继承,所有类的最终父类都是<class 'object'>
print(ClsName.__mro__)
# 输出: (<class '__main__.ClsName'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)
print(a.f1())
# 输出: 1
scikit-learn数据预处理fit_transform()与transform()的区别
参考(https://me.csdn.net/capecape)
无论是scikit-learn提供的转换器,或是Pipeline,或是FeatureUnion中,
我们使用fit_transform处理完数据后,想要沿用刚刚处理结果中的各项指标,则继续使用transform来处理新的数据即可.
但是如果此时我们调用fit_transform来处理新的数据,则各种指标会在新数据中重新获取,旧的指标清零.
那么会出现:对于新的数据,fit_transform得到的结果跟transform不同,也不符合我们的要求.
未调用过fit_transform直接调用transform会报错.
准确率(查准率),召回率(查全率),真正例率,假正例率区别
https://www.jianshu.com/p/1afbda3a04ab
对于二分类问题:
真正例(TP):实际上是正例的数据点被标记为正例
假正例(FP):实际上是反例的数据点被标记为正例
真反例(TN):实际上是反例的数据点被标记为反例
假反例(FN):实际上是正例的数据点被标记为反例
网友评论