一.numpy简介
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
一个用python实现的科学计算,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
二.快速入门
①.numpy的简单使用:
1.np.random.randn(100,100)为创建一个100100的矩阵,其中,randn函数返回一个或一组样本,具有标准正态分布。
2.np.arange(16).reshape((4,4))为创建一组0-15范围的44的矩阵。
②.创建一维数组和二维数组及操作:
二维数组的输出结果:
关于数组的一些操作:
1.array.head()函数默认为显示数组的前5行,如果加数字,则显示对应的前几行。
2.array.tail()函数默认为显示数组的最后5行,如果加数字,则显示对应的前几行。
3.array.index 为显示数组的行标签。
4.array.columns 为显示数组的列标签。
5.array.values 为显示数组里的值。
6.array.describe() 为输出列表的具体信息。
7.array.T 为输出数组的转置。
8.array.sort_index(axis=1) 为对列的索引顺序输出。
9.array.sort_index(axis=1,ascending=False) 为对列的索引进行倒叙。
10. array.sort_index(axis=0,ascending=False) 为对行的索引进行倒叙。
11. array[2:4] 显示数组第二行,第三行。
12. array["行标签1’:“行标签2”] 为利用行标签进行索引。
13. array.iloc[2:4] 利用iloc行索引。
利用iloc进行行索引时,显示特定的列。
14.array.loc[“行标签1”:“行标签2”] 利用loc进行行标签索引。
行标签索引时,显示指定的列。
15.array.copy()为数组拷贝。
16.array[“新列名称”]=数组(相对应的) 为新增一列。
17.array.iat[num1,num2]=num3,修改所对应行列中的数。
18.array.列标签=数组,为修改一列的数。
③.利用字典创建二维数组:
首先,先创建字典dc:
再利用字典进行创建二维数字,则键为列标签。同时输出A、B两列的数据。
④.矩阵操作:
1.首先创建df数组
2.再将df数组重新构造索引,行为第一行至第四行,列索引为df原线索引并再添加新的一列,值为NaN。
3.pd.isnull(df1)) 是判断矩阵中是有NaN:
4.df1.loc[dates[1:3],“E”]=2 #为E列的第2行第3行添加数据
df1.dropna()) 将NaN的值所在行去掉,抹点后,所在的行也将消失。
df1.fillna(value=5) 将NaN的值换为5
5.df.apply(np.cumsum)为生成新的矩阵,第二行的每个元素为原第一行与第二行对应位置之和,第三行为第一行第二行第三行之和,以此类推。
df.apply(lambda x:x.max()-x.min())为列操作,每一列中最大元素减最小元素。
⑤.数据合并、分类与数据可视化:
1.合并: 创建数列df,并将数列df拆分,重新合并为新的数列
输出结果为:
2.分类:
利用DataFrame创建数组:
进行分类操作:
输出结果:
3.数据可视化:
输出结果:
4.时间处理功能:
输出结果: