美文网首页
利用Python进行数据分析笔记:02Python语言基础(上)

利用Python进行数据分析笔记:02Python语言基础(上)

作者: 七七师姐 | 来源:发表于2022-04-07 23:12 被阅读0次

    一、IPython基础

    1. 标准IPython快捷键:

    标准IPython快捷键

    2. IPython常用魔术命令:

    IPython常用魔术命令

    二、Python语言基础

    1. 缩进,而不是大括号

    Python使用缩进(tab或者空格)来组织代码,而不是用大括号:

    for x in array:
        if x < pivot:
            less.append(x)
        else:
            greater.append(x)
    

    一个冒号代表一个缩进代码块的开始,单个代码块必须保持相同的缩进,直到代码块结束。

    2. 分号用于在一行内分隔多条语句

    a = 5; b = 6; c = 7
    

    3. 注释使用#号

    print("Reached this line") # 简单的状态报告
    

    4. 函数和对象方法的调用

    调用函数时,向函数括号里传递0或多个参数,把返回值赋值给一个变量
    函数传参可以是位置参数,也可以是关键字参数

    result = f(x, y, z)
    g()
    result = f(a, b, c, d=5, e="foo") # 前三个使用了位置参数,后两个使用了关键字参数
    

    对象内部函数,称为方法,可以访问到对象内部的内容

    obj.some_method(x, y, z)
    

    5. 变量和参数传递

    在Python中对一个变量赋值时,是创建了一个指向等号右边对象的引用, 而不是拷贝

    a = [1, 2, 3]
    b = a
    a.append(4)
    b
    ### 可以发现b 也变成了[1, 2, 3, 4], a, b 两个引用指向同一个对象
    

    6. isinstance函数检查对象是否是特定类型

    a = 5
    isinstance(a, int)  # 检查a 是不是整数类型
    a = 5; b = 4.5
    isinstance(a, (int,float)) #检查a的类型是否整型或者浮点型
    isinstance(b, (int, float))#检查b的类型是否整型或者浮点型
    

    7. 属性和方法

    Python中的对象通常会有属性和方法。通过形如obj.attribute_name的语法进行调用:

    a = "foo"
    a.<Press Tab>
    getattr(a, "split")
    

    8. 导入模块

    模块是以.py为后缀名并包含Python代码的文件, 使用as关键字对导入内容给予不同变量名

    # some_module.py
    PI = 3.14159
    def f(x):
        return x + 2
    def g(a, b):
        return a + b
    
    import some_module as sm
    from some_module import PI as pi, g as gf
    r1 = sm.f(pi)
    r2 = gf(6, pi)
    r1
    r2
    

    9. 二元运算符和比较运算

    二元操作符
    a = [1, 2, 3]
    b = a
    c = list(a)
    a is b
    a is not c # list 函数总是创建一个新的Python列表即一份拷贝,我们可以确定a与c是不同的
    a == c # is和== 是不同的,相等不代表是同一个对象 
    

    10. 可变对象和不可变对象

    可变对象中包含的对象和值可以被修改,例如列表、字典、Numpy数组:

    a_list = ["foo", 2, [4, 5]]
    a_list[2] = (3, 4)
    a_list
    Out[34]: ['foo', 2, (3, 4)]
    

    不可变对象不能被修改,如字符串、元组:

    a_tuple = (3, 5, (4,5))
    a_tuple[1] = "four"
    
    TypeError: 'tuple' object does not support item assignment
    

    可变对象可以修改但不建议修改避免副作用

    11. 标量类型

    标准Python标量类型
    • 数值类型int和float
    ival = 17239871
    ival ** 6
    fval = 7.234
    fval2 = 6.78e-5
    3/2 #整数除法把结果自动转型为浮点数
    3 // 2 #3整除2
    
    • 字符串str
    a = 'one way of writing a string'
    b = "another way"
    
    ### 含有换行的多行字符串可以用三个单引号或者三个双引号
    c = """
    This is a longer string that
    spans multiple lines
    """
    c
    # 字符串是不可变的,无法修改一个字符串:
    a = 'this is a string'
    a[10] = 'f'#修改字符串会报错
    b = a.replace('string', 'longer string') #a替换字符赋值给b
    b 
    
    • 布尔值True、False
    True and True
    Out[67]: True
    False or True
    Out[68]: True
    
    • 类型转换
      str, bool, int, float 既是数据类型,也是将其他数据转为这类型的函数
    s = '3.14159'
    fval = float(s)
    type(fval)
    Out[3]: float
    int(fval)
    Out[4]: 3
    bool(fval)
    Out[5]: True
    bool(0)
    Out[6]: False
    
    • None
      None是null值类型。如果一个函数没有显式地返回值,它会隐式地返回None:
    a = None
    a is None
    Out[8]: True
    b = 5
    b is not None
    Out[10]: True
    
    ### None 还可以作为一个常用函数参数默认值:
    def add_and_maybe_multiply(a,b,c=None):
        result = a + b
        if c is not None:
            result = result * c
        return result
    add_and_maybe_multiply(1, 2)
    Out[14]: 3
    add_and_maybe_multiply(1, 2,5)
    Out[15]: 15
    

    None是NoneType类型的唯一实例

    type(None)
    Out[16]: NoneType
    
    • 日期和时间
      Python中内建的datetime模块提供了datetime,date,和time类型
    from datetime import datetime, date, time
    
    dt = datetime(2022, 4, 7, 22, 40, 31)
    
    dt.day 
    Out[31]: 7
    
    dt.minute
    Out[32]: 40
    
    dt.date() #date方法获取日期
    Out[33]: datetime.date(2022, 4, 7)
    
    dt.time() #time方法获取时间
    Out[34]: datetime.time(22, 40, 31)
    
    ### strftime 方法将datetime 转换为字符串
    dt.strftime('%m/%d/%Y %H:%M')
    Out[36]: '04/07/2022 22:40'
    
    ### strptime函数将字符串转换为datetime对象
    datetime.strptime('20220407', '%Y%m%d')
    Out[47]: datetime.datetime(2022, 4, 7, 0, 0)
    
    ### 将分钟、秒替换为0:
    dt.replace(minute=0, second=0)
    Out[49]: datetime.datetime(2022, 4, 7, 22, 0)
    
    ### 两个不同的datetime对象会产生
    ### 一个datetime.timedelta类型的对象:
    dt2 = datetime(2022, 11, 15, 22, 30)
    delta = dt2 - dt
    delta
    Out[54]: datetime.timedelta(days=221, seconds=85769)
    #表示时间间隔为221天又85769秒
    
    type(delta)
    Out[55]: datetime.timedelta
    ### 将timedelta加到一个datetime上将产生一个新的对象:
    dt
    Out[56]: datetime.datetime(2022, 4, 7, 22, 40, 31)
    dt + delta
    Out[57]: datetime.datetime(2022, 11, 15, 22, 30)
    
    Datetime格式化详细说明

    相关文章

      网友评论

          本文标题:利用Python进行数据分析笔记:02Python语言基础(上)

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