科学计算库——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(二维数据)
pandas.Series( data, index, dtype, name, copy)
pandas.DataFrame( data, index, columns, dtype, copy)
我们可以使用 key/value 对象,类似字典来创建 Series:
import pandas as pd
sites = {1: "Google", 2: "Runoob", 3: "Wiki"} #指定新的索引值
myvar = pd.Series(sites)
print(myvar)
用不同方式创建DataFrame:
#使用列表创建
import pandas as pd
data = [['Google',10],['Runoob',12],['Wiki',13]]
df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)
print(df)
#使用 ndarrays 创建
import pandas as pd
data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
print (df)
#使用字典创建
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)
# 返回第一行数据
print(df.loc[0])
# 返回第二行数据
print(df.loc[1])
# 返回第一行和第二行
print(df.loc[[0, 1]])
df = pd.DataFrame(data, index = ["day1", "day2", "day3"]) #指定新的索引值
常用函数:
#读写csv文件
#写入
df.to_csv(filename)
#读取
pd.read_csv(filename,header=0) #保留列属性,header=None不读列属性
#选择行或列
df.loc[3] #第四行
df.loc[:,3] #第四列
df.loc[3:5,0:2] #第四到六行,第一到三列
df.loc[[4,5,6],[0,1,2]] #第四到六行,第一到三列
#统计
df.describe() #描述
df.head() #头五行
df.tail() #尾五行
df.T #转置
df.sort(columns=’B’) #对轴进行排序
df.mean() #对每列求均值 通过axis=0/1 确定行列
#映射
df.apply(function) #通过自定义函数,应用于df中
eg: df.apply(lambda x:x.max()-x.min()) #求得每列最大减最小,通过axis=1 进行行操作
#合并
pd.concat(list) #list各元素为各个DateFrame
eg: pieces = [df[:3],df[3:6],df[6]]
pd.concat(pieces)