#1.41数值类型 int,float,bool(True) #1.42字符串str s1='abcd' s2='''ab cd'''1.4.3列表List
L1=[1,'a1',2,'aa'] #[1, 'a1', 2, 'aa']1.4.4元组Tuple
处在元组中的元素不能修改
T1=(1,'a1') T1=(1,'C1','A1') #(1, 'C1', 'A1') T1[1]=2 # 'tuple' object does not support item assignment
1.4.5集合
集合保持了元素的唯一性,对于重复的元素只取一个
J1={266,3,'h'}
#{266, 3, 'h'}
J2={266,3,3,'h','a','A','h'}
#{'A', 3, 266, 'h', 'a'}
J2[0]
#'set' object does not support indexing
1.4.6字典
①{键 : 值}
②键必须唯一,值不必唯一
③(1)键可以是数值,字符。
(2)值可以是数值,字符或者其他python数据结构
d1={1:1,'J':{266,2,2},'T':(3,'A'),'L':[5,5],3:'''6'''}
#{1: 1, 'J': {2, 266}, 'T': (3, 'A'), 'L': [5, 5], 3: '6'}
d1[3]
#'6'
1.5 python公有方法
1.5.2切片
#通用 s2='hello world!' s2[0:] #'hello world!' s2[0:1] #'h' #包左不包右 s2[:] #'hello world!' s2[-1] #'!' s2[0:5:2] #'hlo' #从s2[0]开始两步截取一次 #[开始索引:结束索引:步长] s2[::-1] #'!dlrow olleh'1.5.3长度
(1)字符串的长度为字符串中所有字符的长度(空格也算)
(2)列表,元组,集合的长度为元素的个数
(3)字典的长度为键的个数
len(s2)1.5.4统计
字符串,列表,元组可以进行统计
s2='hello world!' max(s2) #'w'1.5.5确定成员变量
'e'in s2 #True1.5.6删除变量
s2='''ab cd''' del s2 s2 # name 's2' is not defined1.6方法 1.6.1列表方法
#1创建空列表
L=list()
L=[]
#2添加元素
L.append('H')
#3扩展列表
L.extend(L1)
#某元素计数
L.count('H')
#返回某元素下标
L.index('H')
#元素排序 需要同为str或者int时
L.sort()
1.6.2元组方法
#1创建空元组
T=tuple()
T=()
#2元素计数
T1.count('a1')
#3返回下标
T1.index('a1')
#4元组连接
T+T1
1.6.3字符串方法
#创建空字符串
S=str()
#查找子串 查找子串开始出现的索引位置,没有找到则返回—1
#第一个参数为需要查找的子串,第二个参数为指定待查字符串的开始位置,第三个参数为指定待查字符串的长度
s1.find('a',1,len(s1))
#替换子串
#(被替换子串,替换子串)
s1.replace('a','aa')
#字符串连接
s1+S
#字符串比较
S==s1
1.6.4字典方法
#创建字典
d=dict()
d={}
#可以将嵌套元素转为字典(必须嵌套,length只能为2)
d1=dict([[1,'aa']])
#获取字典值 有键获取对应的值
d1.get(1)
#字典赋值
d.setdefault(2,['a','b'])
1.9函数
1 无返回值
2有一个返回值
3有多个返回值
def work(r):
import math
c=2*math.pi*r
s=math.pi*r*r
return(c,s)
work(1)
第二章 科学计算包numpy
1Numpy的核心基础是N维数组
(以下代码默认导入numpy包)
2.2.1创建数组#嵌套列表(元素为元祖) 转为二维数组 L3=[(1,2),(3,4)] L4=np.array(L3) #嵌套元祖(元素为元祖) 转为三维数组 L5=((1,2),(3,4),(5,6)) L6=np.array(L5)
#numpy多维数组中的子数组必须具有相同的长度 d3 = [[1,2,3],[4,5,6],[7,8,9,10]] A33 = np.array(d3)
2.2.2内置函数创建数组
#创建3行4列元素全为1的数组 z1 = np.ones((3,4)) #创建3行4列元素全为0的数组 z2 = np.zeros((3,4))
#创建默认初始值为0 默认步长为1 末值为9的一维数组 z3 = np.arange(10) #创建初始值为2 步长为2 末值为9的一维数组 z4 = np.arrange(2,10,2) #array([2, 4, 6, 8])2.3数组尺寸
通过数组的shape属性返回数组的尺寸,返回值为元组
#一维数组 仅返回一个元素 代表这个数组的长度 d11 = np.array([1,2,3,4,5,7]) s11 = d11.shape s11 #(6,) #二维数组 返回元组中有两个值 (行数,列数) d2 = [[1,2,3],[4,5,6],[7,8,9]] A22 = np.array(d2) s22 = d22.shape s22 #(3, 3)
数组重排
r = np.array(range(10)) r1 = r.reshape((2,5)) r12.4数组运算
A = np.array([[1,2],[3,4]]) B = np.array([[5,6],[7,8]]) #A数组所有元素取平方 然后与B数组对应元素之间相除 C1 = A**2/B #数学运算 M1 = np.sqrt(A) #取平方根 M2 = np.abs([-1,-2,10]) #取绝对值2.5数组切片 2.5.1常见的数组切片
#D[①,②] ①控制行下标 ②控制列下标 下标从零开始 #取所有行或所有列 用:代替 D = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) D12 = D[1,0] #访问行为1 列为0的数据 #5 D03 = D[:,[0,3]] #访问0,3列数据
#*行控制 还可以通过逻辑列表来实现 D0 = D[D[:,0]>4,:] #取满足0列大于4所有列数据 D31 = D[D[:,0]>5,[3,1]] #取满足第0列大于4的3列数据 和 第0列大于5的1列数据 D31 #array([ 8, 10])
TF = [False,True,True] Dtf = D[TF,[3,1]] Dtf #array([ 8, 10])2.5.2 利用ix_()函数进行数组切片
数组切片也可以通过ix_()函数构造 行,列 下标索引器
D = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) print(D[:,0]>4) #[False True True] print(np.ix_(D[:,0]>4 )) #(array([1, 2], dtype=int64),)
Dix1 = D[np.ix_(D[:,0]>4),[3,1]]
print(Dix1)
print("-------这里注意看区别--------")
Dix2 = D[np.ix_(D[:,0]>4,[3,1])]
print(Dix2)
2.6 数组连接
数组连接有水平连接【hstack()】和垂直连接【vstack()】两种方式



