运行方式:缩进 TAb(四格)或者space(1格)
注释:#可以在程序后注释文字 或者''' ... ''' ,""" ... """ 可以多行注释 中间全为注释
数值输出 print(...)
图形输出 import matplotlib as plt
plt.show()
列表 list=[] #字符串 数字均可
元组 tuple=()#不可更改,输入字符串 数字均可
字典 dict={} #无序储存,
# dict['one'] = "This is one"
# dict[2] = "This is two"
# tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}
产生数组(numpy):
import numpy as np
a=np.arange(9).reshape(3,3)
np.zeros(10) #全为0的数组
np.zeros((n, m)) #全为0的3行 6列数组
np.empty((2, 3, 2)) #空矩阵 2个数 3行 2列
np.ones((2,6)) #全为1的2x6数组,
np.arange(15) #随机矩阵0-14.
np.eye((2,3)) #单位矩阵
b = np.array([ 1.+1.j, 3.+2.j]) #复数形式
b.real #real 实部
b.imag #imag 虚部
b.tolist() #数组b 转换列表
b.tostring() #转换b 成字符串
shape函数:获得数组形式
>>>b=[2 3 4 5 5 7]
b.shape
>>>>1,6
reshape函数:重新定义数组形式,但不改变数组结构。
b.reshape(2,3)
>>>b=[[2 3 4] [5 5 7]
resize函数:重新定义数组的结构,改变了数组结构
运算
** 为幂次
a + =1 类似符号(+ - * / % // )等同于a=a+1
数组索引切片
a[: : -1] #选中所有行列 倒序输出
a[0, ...] #选中第一维数组输出(若数组中有2个列表及以上)
效果同:a[0, : , :]
a[0,1] #第0维 第二行
a[0,1,::2] #第0维 第二行 指定步长 维数
a[0,:,-1] #第0维最后一列
a.T # 数组转置
a.ravel() #高维度数组 换一维度数组
a.flatten() #高维度数组 换一维度数组
数组分割与拼接
np.hsplit(a, 3) #水平分割 将a分成3列 每一列为一个矩阵
np.split(a, 3, axis=1) #分割函数 按列分 3份 效果同上
np.vsplit(a, 3) #垂直分割 3行
np.split(a, 3, axis=0) #分割函数 按行分割
np.hstack((a, b)) #水平拼接
np.concatenate((a, b), axis=1) #按行整合,大规模数据拼接
np.vstack((a, b)) #垂直拼接
np.concatenate((a, b), axis=0) #按列整合,垂直整合
列表的遍历enumerate函数
enumerate(sequence,[start=0]) #start 下标的起始位置,sequence是一个序列
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons, start=1))# 下标从 1 开始
----[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
推导式的应用(加入循环判断函数)
数组:
x = [i fori inrange(100) if(i % 2) != 0 and(i % 3) == 0]
print(x) # [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
元组:
a = (x forx inrange(10))
print(tuple(a)) # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 数组形式要是tuple(a)
字典:
b = {i: i % 2 == 0 fori inrange(10) ifi % 3 == 0}
print(b) # {0: True, 3: False, 6: True, 9: False}
c = {i fori in[1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c) # {1, 2, 3, 4, 5, 6}