Numpy和pandas的一些函数笔记

Numpy

函数 作用
a=np.array([2,23,4],dtype=np.float) 把列表转换成矩阵(我们创建的时候是一个列表,有逗号分割,转换成矩阵之后就没有逗号分隔)
a.ndim 矩阵的维度
a.shape 矩阵的形状(几行几列)
a.shape[0] a的行数
a.shape[1] a的列数
a.size 矩阵共有多少个元素
a=np.zeros((3,4)) 生成3行4列的全零矩阵
a=np.arange[10,20,2] 生成10到20的数列,间距是2
a=np.arange(12).reshape((3,4)) 生成从0到11的3行4列矩阵
a=np.linspace(1,10,5) 生成从1到10的一个线段,共5段,自动计算步长
a[0,0] 索引a的第一行第一列
a[1,:] 索引第二行的所有数
np.argmax(a,0) 索取每列最大值索引,如果想索取每行最大值索引,把0换成1
a.flatten() 把矩阵a中的元素放到一行
a=np.random.random((2,4)) 随机生成2行4列的随机矩阵
np.sum(a, axis=None) 对整个矩阵元素求和,如果数组a是多维,默认是对列求和,我们也可以对它进行指定,当axis=0时是对列进行求和,当axis=1时是对行进行求和
np.sum(a,axis=0) axis=0对每一列求和,axis=1对每一行求和
np.max(a,axis=0) 寻找每一列中的最大值
np.clip(a, 5, 9) 矩阵中小于5的元素为5,大于9的元素为9
np.size(a,0)/ np.size(a,1) 当为0时求行个数,为1时求列个数
np.matmul(a,b) 矩阵乘法(交叉相乘相加)
np.dot(a,b) 矩阵乘法(点积,与上相同)
np.linspace(start, stop, num) 生成num个从start到stop的数
np.expand_dims(data, axis=3) 增加一个第四维,例如原数据形状是(60,28,28),新的形状是(60,28,28,1)
A@B 矩阵乘法
a*b 对应元素相乘
A**2 矩阵里每个元素平方
np.hstack((a,b)) 把矩阵a拼接到矩阵b的左侧(注意几个括号)
np.vstack((a,b)) 把矩阵b拼接到矩阵a的下方
np.concatenate((a,b,c,d,e),axis = 0) 把多个矩阵进行上下合并
np.split(a,2,axis=1) 把矩阵a进行纵向分割,分割成两列
np.array_split(a,3,axis=1) 把矩阵a进行纵向不等量分割,分割成两列
np.vsplit(a,3) 横向分割成三部分
np.hsplit(a,4) 把矩阵a纵向分割成4部分
np.isin(a,b) 判断a是否在b里,如果是就返回true,否则就返回false
np.loadtxt('text.txt') 读取txt文件
np.savetxt('text.txt', X) 保存txt文件, 第一个是文件路径,X是要保存的数组
np.reshape(a, newshape) a要变换的array,newshape期望得到的形状
numpy.ndarray.flatten(a) 将数组展平,返回原数据的副本
np.ravel(a) 将数组展平,不返回数据副本
np.squeeze(data,axis = 1) 对data的形状进行压缩,列入原data的形状为[5,1,24],压缩后的形状就为[5,24]
np.random.rand(3,2) 产生形状为(3,2)符合标准正太分布的随机数
np.random.randint(low, high, size=None) 产生从low到high形状为size的整数
np.random.random(size=None) 产生区间为[0,1)的随机浮点型数组
np.random.normal(size=None) 产生符合正态分布的随机数
np.prod(a, axis=None) 计算矩阵a元素的乘积,np.prod([[1.,2.],[3.,4.]]),结果为1234=24,np.prod([[1.,2.],[3.,4.]], axis=1)计算每一行的乘积,结果为[12=2,3*4=12]
np.argsort(x) 该函数是求输入数组x的按从小到大排列的索引。例如x=np.array([5,2,3]),则输出的结果为:array([1,2,0])
np.unique() 去掉数组中重复的数
np.transpose(img, [1,2,0]) 把img的元素从位置[0,1,2]转换成[1,2,0]
a[::-1] 翻转array的顺序,比如原来a=np.array([0,1,2,3]),a[::-1]之后就变成了[3,2,1,0]

pandas

函数 作用
pd.Series([list],index=[list]) 是pandas的一种一维数据结构,创建一个带索引的一维表,不输入索引默认索引从0开始 ,里面也可以直接传入一个字典{'a':1,'b':3,'c':6}
pd.DataFrame(np.random.randn(4,4),
index=list('ABCD'),columns=list('abcd'))
pandas的一种二维数据结构。类似于excel表,index和columns默认为从0开始
pd.DataFrame(data, index=range(20), columns=['a','c','f']) 也可以指定行列名,更多方法
pd.date_range(start=None, end=None, periods=None) 创建时间序列
df.head() 默认printdataframe的前5行数据,括号内可输入具体数字,例如df.head(3)就是只打印前3行
pd.rename(columns={'原名':'新名'} inplace=True) 给列换名字
df.dtypes 返回数据形式
df.index 返回数据的索引
df.columns 返回列的名字
df.valuse 返回所有元素
df.describe() 返回数据描述
df.T 行列颠倒
df.sort_index(axis=1,ascending=False) 将列索引按倒序进行重新排序(这一列中所有元素都要一起动)
df.sort_values(by='E') 对E列按值进行排序
df.groupby(key) 按key进行分组,更多使用方法参考
df.'A' / df['A'] 返回A这1列
df[1:3] 返回df1到3行的切片 (index1:3)
df['A':'B'] 返回A到B行(indexA:B)
df.loc['20130101'] 返回标签为“20130101”这一行,(只能index,返回columns见下)
df.loc[:,['A','C']] 返回A和C两个colunms(不能用:连接AC)
pd.concat([df1, df2], axis=0) 将df1和df2进行上下合并
pd.drop(['name'], axis=1, inplace=True) 删除某列并替换原数据
df.dropna(axis=0, how='any') axis=0表示丢掉行,axis=1表示丢掉列。how={'any','all'},当how为'any'时,只要这一行/列出现空值,就丢掉;当how为‘all’时,只有当这一行/列都为空值才丢掉
df.fillna(value=0) 空值用0填充
df.isnull() 判断是否有缺失值
pd.to_csv('data.csv', index=False, header=False) 保存数据,不保存索引和列名称
pd.read_csv(path, header=None) 读csv文件, 如果不声明header=None,第一行会作为表头,详细参数设置
df.values 把dataframe变成array
df.matrix 把dataframe变成array
np.array(df) 把dataframe变成array
np.unique(a) 去掉数组a中重复的数

你可能感兴趣的:(Numpy和pandas的一些函数笔记)