美文网首页Python
Numpy和pandas的一些函数笔记

Numpy和pandas的一些函数笔记

作者: 一位学有余力的同学 | 来源:发表于2019-02-11 23:06 被阅读0次

    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() 去掉数组中重复的数

    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的一些函数笔记

        本文链接:https://www.haomeiwen.com/subject/lybceqtx.html