科学计算库——Numpy

1.主要对象是同质多维数组
2.数组的维度被称为轴(axes)、轴的数量称为秩(rank) 数组的维数就是秩
对于ndarray(简称array),其对象属性有很多
eg:shape — 数组的维度,对一个n行m列的矩阵,shape就是(n,m)的元组
T — 转置 、 itemsize — 数组中每个元素的大小(单位:字节)
ndim — 轴(维度)的数量 、 real — 返回数组的实部 / imag — 返回虚部
写的时候没有括号
格式转换:np.array(5,dtype = int) / np.array(5).astype(float)

3.创建矩阵
ones(shape,dtype) 全1 shape可写成(n,m)
zeros(shape,dtype) 全0
eye(N, M, k, dtype) N:行数 、M:列数(默认等于N) 、k:可选对角线序列号(默认为0 主对角线)
identity(n,dtype) — n维单位方阵

4.矩阵运算
numpy.linalg

求逆矩阵
求方程组精确解
求特征值和特征向量
求行列式值
奇异值分解
线性方程组的最小二乘解

科学计算库——Scipy

数据分析库——Pandas

Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据)

  1. pandas.Series( data, index, dtype, name, copy)
  2. pandas.DataFrame( data, index, columns, dtype, copy)

我们可以使用 key/value 对象,类似字典来创建 Series:

  1. import pandas as pd
  2. sites = {1: "Google", 2: "Runoob", 3: "Wiki"} #指定新的索引值
  3. myvar = pd.Series(sites)
  4. print(myvar)

用不同方式创建DataFrame:

  1. #使用列表创建
  2. import pandas as pd
  3. data = [['Google',10],['Runoob',12],['Wiki',13]]
  4. df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)
  5. print(df)
  6. #使用 ndarrays 创建
  7. import pandas as pd
  8. data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
  9. df = pd.DataFrame(data)
  10. print (df)
  11. #使用字典创建
  12. import pandas as pd
  13. data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
  14. df = pd.DataFrame(data)
  15. print (df)
  16. # 返回第一行数据
  17. print(df.loc[0])
  18. # 返回第二行数据
  19. print(df.loc[1])
  20. # 返回第一行和第二行
  21. print(df.loc[[0, 1]])
  22. df = pd.DataFrame(data, index = ["day1", "day2", "day3"]) #指定新的索引值

科学计算与数据分析 - 图1
常用函数:

  1. #读写csv文件
  2. #写入
  3. df.to_csv(filename)
  4. #读取
  5. pd.read_csv(filename,header=0) #保留列属性,header=None不读列属性
  6. #选择行或列
  7. df.loc[3] #第四行
  8. df.loc[:,3] #第四列
  9. df.loc[3:5,0:2] #第四到六行,第一到三列
  10. df.loc[[4,5,6],[0,1,2]] #第四到六行,第一到三列
  11. #统计
  12. df.describe() #描述
  13. df.head() #头五行
  14. df.tail() #尾五行
  15. df.T #转置
  16. df.sort(columns=’B’) #对轴进行排序
  17. df.mean() #对每列求均值 通过axis=0/1 确定行列
  18. #映射
  19. df.apply(function) #通过自定义函数,应用于df中
  20. eg: df.apply(lambda x:x.max()-x.min()) #求得每列最大减最小,通过axis=1 进行行操作
  21. #合并
  22. pd.concat(list) #list各元素为各个DateFrame
  23. eg: pieces = [df[:3],df[3:6],df[6]]
  24. pd.concat(pieces)

符号计算——Sympy