一、pip基本指令
0、cls
清屏
1、pip基本指令
1)pip help
获取帮助
2)pip help install
获取关于安装包的帮助
3)pip search SomePackage
搜索指定的包
4)pip install SomePackage
安装指定的包
5)pip list
列出已安装的包
6)pip uninstall SomePackage
卸载指定的包
7)pip list -o , pip list --outdated
查看可升级的包
8)pip install -U pip
升级pip
9)pip show SomePackage
查看指定包的详细信息
10)pip freeze > text.txt
将pip freeze的输出结果存进当前工作目录下的text.txt文件中
二、Numpy
0、定义
Numpy是一个功能强大的工具,用于对数字列表执行数学运算,比python列表操作运算速度更快
1、ndarray
0)Numpy的主要对象是同构多维数组,是一个元素表List,通常是数字,都是相同的类型,由正整数元素索引(在Numpy维度中称为轴Axis)
1)ndim
可以使用xxx.ndim
查看多维数组的维度,即轴数
2)shape
可以使用xxx.shape
查看多维数组的大小,即几行几列,返回的是一个元组,元组的长度等于ndim
3)size
可以使用xxx.size
查看多维数组元素的总数
4)dtype
可以使用xxx.dtype
查看多维数组元素的类型
5)itemsize
可以使用xxx.itemsize
查看多维数组中每个元素的大小(以字节为单位)
2、ndarray的建立
1)arange
可以使用np.arange([start,] stop[, step,], dtype=None)
生成一个指定数据类型的ndarray
2)array
可以使用np.array(object,dtype=None)
根据传入的object生成一个指定数据类型的ndarray
3)zeros
可以使用np.zeros(shape,dtype=float)
建立一个指定大小的元素全为0的ndarray
4)ones
可以使用np.ones(shape,dtype=float)
建立一个指定大小的元素全为1的ndarray
5)linspace
可以使用np.linspace(start,stop,num=50,endpoint=True)
将start至end这一段等差取num个点,endpoint可以决定stop是否也加入ndarray
3、random
1)seed
可以使用np.random.seed(seed)
来指定一个seed,使程序不同次运行时random出的结果保持一致
2)choice
可以使用np.random.choice(a, size=None, replace=True, p=None)
根据传入的a,可为int数字(转为0至a),也可为一维数组,生成一个指定大小的列表,replace控制是否可以改变,p为每个元素被随机到的几率列表
3)random_sample(random)
可以使用np.random.random_sample(shape)
(np.random.random(shape)
)在[0.0,1.0)的范围内随机取数,生成个指定大小的ndarray
4)randint
可以使用np.random.randint(start,stop,szie)
返回在[start,stop)范围内的指定size个随机整数组成的列表,若stop为空,则[0,start)范围
5)randn
可以使用np.random.randn(num1,num2)
从标准正态分布返回一个指定shape的列表
4、zip
可以使用zip(list1,list2)
将两个列表合并为一个由原组对组成的列表
5、count_nonzero
可以使用np.count_nonzero(a, axis=None, *, keepdims=False)
统计传入的列表中有多少个非零值
6、max
可以使用np.max(a,axis=None)
查看在传入的a中的最大元素,axis为None时查看全部元素中最大值,axis为0时查看每列最大值,axis为1时查看每行最大值(最大值个数为shape除去下标为axis的轴后剩下的轴长乘积)
7、min
np.min(a,axis=None)
类似于max求最小值
8、mean
np.mean(a,axis=None)
类似于max求算术平均值
9、median
np.median(a,axis=None)
类似于max求中值
10、std
np.std(a,axis=None)
类似于max求标准偏差
11、sum
np.sum(a,axis=None)
类似于max求和
12、reshape
可以使用np.reshape(a,newshape)
将一个ndarray以等size的newshape输出
13、ravel
可以使用np.ravel(a)
将一个ndarray以一维数组输出
14、square
可以使用np.square(xxx)
将矩阵每个元素平方
15、power
可以使用np.power(xxx,num)
将矩阵每个元素取幂
16、linalg.inv
可以使用np.linalg.inv(xxx)
得到矩阵的逆矩阵(矩阵叉乘逆矩阵等于E)
16、slicing分片
可以使用xxx[start1:stop1[:step1],start2:stop2[:step2]]
选择横轴从start1到(stop1-1)中纵轴strat2到(stop2-1)的范围;也可start和stop置空,表示该轴全选;也可start:stop换为index,指定该轴中的一个下标;step做步进使用,即选中start后每step选中一个
17、矩阵运算
1)+
加,-
减,*
元素乘(点乘),/
矩阵元素除
每个元素直接对应相加,减,乘,除
2)dot矩阵乘(叉乘)
可以使用xxx.dot(yyy)
得到矩阵叉乘的结果
3)transpose转置
可以使用xxx.transpose()
得到矩阵的转置矩阵
18、exp
可以使用np.exp(a)
计算输入的所有元素的指数
19、logspace
可以使用np.logspace(start,stop,num)
在start至stop生成等差共num个数据的列表
20、interp
可以使用np.interp(x, xp, fp)
返回根据xp和fp的关系计算得出的在x处的数值组成的列表
三、Matplotlib
0、设定
1、坐标图plot
2、散点图scatter
3、条形图bar
4、对数缩放图semilogx
5、直方图hist
6、像素图imshow
7、相关性函数图cohere
8、误差棒图errorbar
9、热图pcolormesh
10、饼图pie
11、保存
plt.savefig("piechart.png", bbox_inches="tight", pad_inches=1, transparent=True)
四、Pandas
0、定义
Series系列是Pandas的主要构建,导入import pandas as pd
1、Series
1)建立系列
可以使用xxx=pd.Series(dictionary)
利用一个字典生成一个系列,字典的键key可作索引使用,且使用传入时的顺序当成下标,也可以两个相同大小的列表建立系列(xxx=pd.Series(data=data_list,index=index_list)
)注意数据作为第一个参数提供,索引作为第二个参数提供,还可以使用xxx=DataFrame['symbol']>num
由表格生成一个数据为布尔类型的系列
2)输出
可以使用xxx['symbol']
输出第一个index为symbol的元素的data,也可以根据建立时的顺序当下标使用xxx[num]
3)合成
可以使用zzz=xxx.append(yyy)
将yyy接在xxx的后面生成zzz,但是xxx和yyy可以有相同的索引对应不同的值
4)相加、减
可以使用zzz=xxx+yyy
、zzz=xxx-yyy
根据相同index进行对应的data相加、减
5)删除
可以使用xxx.drop['symbol']
删除指定index的数据项,注意如果没有使用xxx.drop(['symbol'],inplace=True)
的话,只是生成了一个新的系列,使用则可以修改原系列;当只是为了删除NaN项的时候,可以使用xxx.dropna(inplace=True)
6)乘
可以使用zzz=np.multiply(xxx,yyy)
根据相同index进行对应的data相乘
7)除
可以使用zzz=np.divide(xxx,yyy)
根据相同index进行对应的data,xxx除以yyy
8)生成日期
可以使用date_list=pd.date_range('20010201',periods=num)
生成从当前时间开始的num天组成的列表
9)any和all
可以使用xxx.any()
来判断xxx的data中是否至少存在一个为True,xxx.all()
来判断xxx的data是否全为True
10)apply
可以使用list.apply(function)
对list中全部元素调用函数,将结果作为data_list生成系列
11)astype
可以使用xxx.astype(type)
将系列的data数据类型转为type
12)复制
可以使用yyy=xxx.copy()
将系列xxx复制为系列yyy
13)统计
可以使用xxx.describe()
查看系列data统计结果,包括count个数,mean平均值,std标准差,min最小值,25%50%75%下标对应的data值,max最大值
2、DataFrame
1)建立表格
可以使用xxx=pd.DataFrame(data_list,index=index_list,columns=1D_list)
生成一个由index为纵轴(若index为空则默认使用自然数做index),columns为横轴的表格,内容为2D_list(当传入的data_list是系列Series的data列表时,就可以利用系列建立表格);也可以使用xxx=pd.DataFrame(dictionary)
生成一个由自然数组成的index纵轴,columns为字典的key,内容为字典的值;
2)类型
可以使用xxx.dtypes
查看每个columns下的内容的数据类型,也可以使用xxx['symbol']=pd.to_numeric(xxx['symbol'],errors='coerce')
将原表格中的指定column列中的数据转换为数字类型,errors表示转化失败的处理(raise抛出异常,coerce设置为NaN,ignore返回输入)
3)头尾
可以使用xxx.head(num)
输出表格index前num的数据,也可以使用xxx.tail(num)
输出表格index倒数num的数据,num置空则默认为5
4)index(索引,行)
可以使用xxx.index
查看由索引组成的列表
5)columns(键,列)
可以使用xxx.columns
查看由键组成的列表
6)values
可以使用xxx.values
将表格输出为index行,columns列组成的二维数组
7)统计
可以使用xxx.describe()
查看表格各列的数据统计结果,包括count数据个数,mean平均值,std标准差,min最小值,25%50%75%下标对应的数据值,max最大值
8)转置
可以使用xxx.T
查看表格的转置表格,即index和columns互换
9)排序
可以使用xxx.sort_index(axis,ascending=True)
按axis指定的轴(0为横轴columns,1为纵轴index)升序排序,acending指定另一条轴升序(True)或降序(False);也可以使用xxx.sort_values(by='symbol')
根据指定column的数据升序调整index的顺序
10)输出
可以使用xxx['symbol']
按index输出对应column列的全部数据(或者使用xxx[['symbol1','symbol2']]
输出多列数据),还可以使用xxx['symbol'][num]
输出对应column列的指定num行数据,也可以使用xxx[index1][index2]
按column输出index1至(index2-1)行的全部数据,或者使用xxx.iloc[num]
按column输出指定行的数据;使用yyy=xxx[boolean_Series]
输出在布尔类型系列中为True的数据对应的index行数据
11)添加
可以使用xxx['new_symbol']=xxx['old_symbol']+2
等类似运算,由原有的数据列生成新的数据列并添加到原表格中
12)删除
可以使用xxx=xxx.drop(labels,axis)
删除指定轴中对应的行或列
13)设定
可以使用pd.options.display.max_columns=num_column
控制输出的最大列数,pd.options.display.max_rows=num_index
控制输出的最大行数,pd.options.display.notebook_repr_html=True(False)
控制是否显示表格线
14)过滤
可以使用xxx[xxx['symbol']==data]
或xxx[xxx.symbol==data]
按行输出符合条件的列,xxx[(xxx.symbol1==data)|(xxx.symbol2<num)]
和xxx[(xxx.symbol1==data)&(xxx.symbol2<num)]
也可以起到同样的效果;xxx[(xxx.symbol1==data)&(xxx.symbol2<num)][['symbol3','symbol4']][:1]
还可以进一步限制输出的范围
15)读取csv文件
可以使用xxx=pd.read_csv(’url‘)
读取指定的csv文件,注意此时csv文件的第一行会被当做columns
16)存储为文件(xlsx和csv)
可以使用xxx.to_excel(’url‘,sheet_name='Sheet1')
将表格存储至指定xlsx文件中,注意重复存入同一位置会整体替换,也可以使用xxx.to_csv('url',index_label='symbol')
存储为csv文件
17)读取xlsx文件
可以使用xxx=pd.read_excel('url')
读取指定的xlsx文件,注意此时xlsx文件的第一行会被当做columns
18)更换index
可以使用xxx.set_index('symbol')
将指定column列的数据作为index使用,注意需要使用xxx.set_index('symbol',inplace=True)
才会改动原表格
19)更换index后的输出
可以使用xxx.loc['new_index']
以表格形式输出对应行的数据内容,还可以xxx.loc[['new_index'],['symbol1','symbol2']]
只输出指定column列下对应行的数据内容
20)恢复index
可以使用xxx.reset_index(inplace=True)
将index恢复为自然数
21)替换
可以使用yyy=xxx.replace(data1,value=data2)
将整个表格中的data1替换为data2,也可以使用yyy=xxx.replace(list1,list2)
将list中在表格内出现的list1数据全部按顺序替换为在list2同下标的数据(这里的list2可以为单一值,这样全部替换为同一data),还可以使用yyy=xxx.replace({'symbol1':data1,'symbol2':data2},data3)
替换指定列中各指定的data为data3,或者使用yyy=xxx.replace({data1:data2,data3:data4})
同时替换多个数据为对应的data
22)合并
可以使用zzz=pd.merge(xxx,yyy,on='symbol')
根据指定的column相同的数据进行表格的合并,合并后的index顺序为xxx中的index顺序
23)信息
可以使用xxx.info()
查看表格的数据信息
24)聚集
可以使用yyy=xxx.groupby(['symbol1','symbol2'])
将在指定column列下具有相同值的数据集合在一起并重新编排index
25)聚集后
xxx.groupby(['symbol']).sum()
输出聚集之后各部分在各column列下数据的和作为data组成的表格,xxx.groupby(['symbol']).max()
同理输出最大值表格,xxx.groupby(['symbol1'])['symbol2'].describe()
聚集情况下各部分在指定column列下数据的统计结果