• Python学习笔记(一)


    一、Python基础

    1.简述

    Python是一门高级语言、解释型语言,交互式语言、面向对象的语言

    2.类型和表达式部分

    你好,世界

    print "你好,世界“

    乘方

    print 2**10

    变量

    var = 1
    print var
    
    var  = "段光伟"
    print var

    获取用户输入

     x=input("x:")
    x:4
    y=input("y:")
    y:4
    print x*y
    16

    函数定义

    def say_b():
        print "b"

    强类型(不允许不安全的类型转换)

    print 1+int("1")
    
    print str(1)+"1"

    字符串

    #字符串
    print ''''段 光伟'''
    print r'C:log.txt'
    print 'C:\log.txt'

    序列seq

    seq = "0123456789"
    print seq[0] #从0开始编码。
    print seq[-1] #支持倒着数数,-1代表倒数第一。
    print seq[1:5] #支持分片操作,seq[start:end],start会包含在结果中,end不会包含在结果中。
    print seq[7:] #seq[start:end]中的end可以省略。
    print seq[-3:] #分片也支持负数。
    print seq[:3] #seq[start:end]中的start也可以省略。
    print seq[:] #全部省略会复制整个序列。
    print seq[::2] #支持步长。
    print seq[::-2] #支持负步长。
    print seq[9:1:-1] #支持负步长。
    print [1, 2, 3] + [4, 5, 6] # 序列支持相加,这解释了为啥字符串可以相加。
    print [1, 2, 3] * 3 #序列支持相乘,这解释了为啥字符串可以相称。
    print [None] * 10 #生成一个空序列。
    print 1 in [1, 2, 3] #成员判断。

    可变的列表

    data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    data[0] = "a" #修改元素。
    print data
    data[0] = 0
    
    del data[10] #删除元素。
    print data
    
    del data[8:] #分片删除。
    print data
    
    data[8:] = [8, 9, 10] #分片赋值
    print data

    学习资源参考:

    https://www.cnblogs.com/happyframework/p/3255962.html

     二、常用模块

    1.numpy

    用于处理数组的模块,同时也是其他数据处理分析的模块

    • 数组的创建
    • 数组的属性和函数
    • 数组元素的获取——普通索引、切片、布尔索引、花式索引
    • 统计函数与线性代数运算
    • 随机数的生成

    (1)导入numpy库

    import numpy as np

    (2)list 与array的区别

    list数组中保存的数据类型不必相同,可以是字符串、整形数据等,存储时存放1个指针和1个数据;

    array的存储空间则小,只存放数值;

    (3)创建数组

    使用array()函数创建数组

    np.array([1,2,3]) # 创建一维数组
    np.asarray([1,2,3])
    np.array([1,2,3], [4,5,6]) # 创建多维数组
    
    np.zeros((3, 2)) # 3行2列 全0矩阵
    np.ones((3, 2)) #全1矩阵
    np.full((3, 2), 5) # 3行2列全部填充5

    np.array 和np.asarray的区别

    array会复制出一个新的对象,占用一份新的内存空间,而asarray不会执行这一操作。array类似深拷贝,asarray类似浅拷贝。

    (4)基础计算

    arr1 = np.array([[1,2,3], [4,5,6]])
    arr2 = np.array([[6,5], [4,3], [2,1]])
    
    # 查看arr维度
    print(arr1.shape) # (2, 3)
    
    #切片 
    np.array([1,2,3,4,5,6])[:3]  #array([1,2,3])
    arr1[0:2,0:2] # 二维切片
    
    #乘法
    np.array([1,2,3]) * np.array([2,3,4]) # 对应元素相乘 array([2,6,  12])
    arr1.dot(b) # 矩阵乘法
    
    #矩阵求和
    np.sum(arr1)  # 所有元素之和 21
    np.sum(arr1, axis=0) #列求和 array([5, 7, 9])
    np.sum(arr1, axis=1) # 行求和 array([ 6, 15])
    
    # 最大最小
    np.max(arr1, axis=0/1)
    np.min(arr1, axis=0/1)

    (5)进阶计算

    arr = np.array([[1,2], [3,4], [5,6]])
    
    #布尔型数组访问方式
    print((arr>2))
        """
        [[False False]
         [ True  True]
         [ True  True]]
        """
    print(arr[arr>2]) # [3 4 5 6]
    
    #修改形状
    arr.reshape(2,3)
        """    
        array([[1, 2, 3],
           [4, 5, 6]])
        """
    arr.flatten() # 摊平 array([1, 2, 3, 4, 5, 6])
    arr.T # 转置
  • 相关阅读:
    Codeforces369E Valera and Queries
    Codeforces369C Valera and Elections
    笔记 navmesh
    笔记 fastbuild
    C++ 遍历某个文件夹下所有文件
    ACM 已结束
    2018 “百度之星”程序设计大赛
    2018 Multi-University Training Contest 1 1002 /hdu6299 贪心 1007 /hdu6304 找规律
    2018 Multi-University Training Contest 5 1008 / hdu6357 Hills And Valleys LCS,思维
    牛客网暑期ACM多校训练营(第二场)G transform 思维,二分
  • 原文地址:https://www.cnblogs.com/Sonny-xby/p/9964239.html
Copyright © 2020-2023  润新知