python基础:
一、程序格式:
①缩进:空白区域,表达程序的格式框架。是语法的一部分。
一般为4个空格和一个TAB
②注释:
#单行注释
''' 多
行
注
释
'''
二、命名与保留字:
变量:用来保存和表示数据的占位符号。
通过赋值符号(=)向变量赋值或修改值
命名规则:大小写字母、数字、下划线组合
大小写敏感,首字符不能是数字。不能与保留字(关键字)相同。如and,break,continue,def,else,for之类
三、数据类型
数字类型:
整数和浮点数:
操作符:
+ - * / // % **
运算函数:
abs() 绝对值 max()
divmod() 商余 min()
pow(x,y) int()
roud(x,d):对x四舍五入,d是小数截取位数 float()
字符串类型:由0个或多个字符组成的有序字符序列 ,由一对单引号和双引号表示。
字符串操作
索引:<字符串>[M] 索引字符串的第M-1个。
切片:<字符串>[M:N:K] 表示从M开始到第N-1个,以K为步长切片。
操作符
x+y:连接字符串x和y
n*x 复制n次字符串x
x in s 如果x是s的子字符串,返回True,否则返回False
字符串函数:
len()返回字符串长度
str () 任意类型对应的字符串形式
字符串方法:
<str>.lower() 字符串内容小写 <str>.upper() 字符串内容大写
<str>.split() 返回一个列表,由str根据被分割的部分组成
Input: "A,B,C,D".split("," )
Output: ['A','B','C']
<str>.center(w,fillchar) 返回一个宽度为w,中心内容为str ,由fillchar为其余填充字符的字符串
Input: "py".center(10,"-") Output: ----py----
格式化方法:
字符串.format(<逗号分隔的参数>)
Input: "{}是{}个{}的例子".format("这",1,"格式化") Output: 这是1个格式化的例子
元组类型:不能被修改的序列类型
使用小括号()或tuple()创建
列表类型:可随意被修改的序列类型
使用[]或list()创建
操作函数和方法:
del ls[i] 删除ls中第i元素
in 判断元素是否在列表中
ls.append(x)
ls.copy
ls.insert(i,x)
ls.reserve
字典类型:采用键-值 对应的数据类型
用大括号{}和dict()创建,键值对用:表示
{<键1>:<值1>,<键2>:<值2>, … , <键n><值n>}
操作函数:
k in d 判断k是否在字典d中,返回布尔类型。
d.keys() 返回字典中所有键
d.values() 返回字典中所有值
d.items() 返回字典中所有键值对
d.get(k) 键k存在,返回相应值
四、流程控制:
分支结构和循环结构
分支结构:
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>
……
else:
<语句块>
循环结构:
for循环
for <循环变量> in <遍历结构>:
<语句块>
for i in range(N):
#range(N) :从0到N-1 表示循环N次
可用于遍历字符串,列表,文件
while循环
while <条件判断>:
<语句块>
保留字:break continue
break 跳出并结束当前整个循环,执行循环后语句。
continue 结束当次循环,继续执行后续次数循环。
五、函数:一段具有特定功能的、可重用的语句组
定义函数:
def <函数名>(<参数>)
<函数体>
return <返回值>
参数:
实参,形参,位置参数,默认参数,可变参数*(将任意个参数组成元组),关键字参数**(将任意个参数组成字典)
六、类
class 类名(): def __init__(self, ): #初始化 … … def<函数名>() : <其他功能>
Python进阶:
numpy:
import numpy as np
生成数组:np.array()
从原有列表转换为数组 np.array(list)
np.full(shape,fill_value,dtype) 以dtype类型,将fill_value填充成shape的列表
np.linspace(start,stop,num) 将首尾区间数字等分为num个的数组
np.eye() n维的单位矩阵
访问数组中的元素
a =np.array()
a[,] 一维
a[:,:] 二维
数组属性
a.ndim 数组轴的个数
a.shape 数组的维度
a.size 数组元素的总个数
a.dtype 数组中元素类型
a.itemsize 数组中每个元素的字节大小。
数组运算
+-*/%
统计类型
np.sum(a)
比较
Input:a = np.array(range(10)) a<3
Output: array([ True, True, True, False, False, False, False, False, False,False])
变形
a.shape(x,y)
排序
np.sort(a)
拼接
np.concatenate([a1,a2,…])
(axis=0指的是逐行,axis=1指的是逐列)
pandas
import pandas as pd
#csv df = pd.read_csv(路径)
df.head() 读前几行
df.tail() 读后几行
DataFrame
df.columns 列名
df.index 索引
筛选
df[df.数学 > 80]
复杂筛选
df[(df.语文>80)& (df.数学>80)& (df.英语>80)]
排序
df.sort_values(['数学','语文'])
访问元素
scores = { '姓名':['老','咸','鱼'], '语文':[2,3,3], '英语':[6,6,6], '数学':[9,9,9] } df = pd.DataFrame(scores.index='one','two','three') df.loc[one] #访问第one行 df.iloc[0] #访问第0行 df.ix()#合并了loc和iloc的功能
df.values() 打印所有数组
df.数学.values 打印数学数组
df.数学.value_counts() 简单的统计
df[['数学','语文']] df.数学 都为提取 xxx 列
分类: 重点
def func(scores): if scores>=85: return '优秀!!' if scores>=60 and socres<85: return '优秀!' if scores<60: return '凉了!!!' df['数学咋样?'] = df.数学.map(func)
df['new_scores'] = df.apply(lambda x : x.数学 +x.语文,axis = 1) 添加new_scores这一列
df.drop(['new_scores'],axis = 1) 删除new_scores这一列
pandas中的dataframe 的操作,很大一部分跟numpy中的二维数组的操作是近似的。
matplotlib绘图
线性图
import matplotlib as plt %matplotlib inline plt.plot(x,y,'o',color = '' ,lambel = '',marksize =,linewidth = ,markeredgecolor='',makeredgewidth=) plt.legend() #与lambel相连,为图例 #o 点 -- 虚线 -p 五边形 -h 六边形 -D 正方形 -d 菱形
#散点图
plt.scatter(x,y)
#柱状图
df.plot.bar()
#密度图
df.plot.kde()
#直方图
df.hist()