美文网首页
python study tips

python study tips

作者: 春来草木萌 | 来源:发表于2019-12-28 16:16 被阅读0次
    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):实际上是正例的数据点被标记为反例

    axis=0和1的理解

    https://www.cnblogs.com/rrttp/p/8028421.html

    相关文章

      网友评论

          本文标题:python study tips

          本文链接:https://www.haomeiwen.com/subject/wvatwctx.html