一、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 # 转置