python中numpy和pandas介

发布时间:2019-08-26 07:16:21编辑:auto阅读(1224)

    numpy和pandas是python中用于处理数据的两个库。
    numpy介绍:
    numpy用于处理array,且array中数据类型必须一致。下面以代码备注的方式介绍。

    #START
    import numpy as np
    
    v=np.array([1,2,3,4,5,6,7,8])   //array中以list的方式展现
    
    m=np.array([[1,2,3,4,5,6,7,8],
                        [8,7,6,5,4,3,2,1]])
    
    h=np.array([[1,2,3,4,5,6,7,8],
                        [8,7,6,5,4,3,2,1],
                              [9,8,7,6,5,4,3,2]],dtype=float)   //指定list中数据类型为float
    
    print(v.type)    //查看array类型
    print(v.shape)    //查看array模型
    #print(np.shape(v))
    print(v.size)
    #print(np.size(v))
    print(v.dtype)
    #END
    #START
    import numpy as np
    ##如下是一个三行四列的array 
    #[1,2,3,4]
    #[2,3,4,5]
    #[3,4,5,6]
    #shape(3,4)
    a=np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]])
    b=a[0:2,1:3]     //array切分操作,对比list中的cut。修改b的话a也会变更。
    
    h=np.array([[1,2],[3,4],[5,6]])
    i=np.array(h[0,1],h[1,1],h[2,0])   //使用index方法脱离关系,即b变化a不变。
    i[[0,0]]=888
    print(i)
    print(h)
    
    c=np.zeros((2,20))   //生成2行20列的0
    print(c)
    
    d=np.ones((20,5))    //生成20行5列的1
    print(d)
    
    e=np.full((5,7),888)  //生成5行7列的888
    print(e)
    
    f=np.eye(10)    //Identify matrix(I)
    print(f)
    
    g=np.random.random((8,19))   //生成随机array
    print(g)
    #END
    #START
    j=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
    k=np.array([0,2,0,1])
    
    l=j[np.arange(4),k]   //j中前4行按照k中的数值提取列中元素
    
    j[np.arange(4),k] += 100   //j中前4行按照k中的数值提取列中元素后再加100,返回j
    print(j)
    #END
    #START
    m=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(m)
    
    boolean_array_indexing =(m>5)   //按照判断条件将array转换成布尔值
    print(boolean_array_indexing)
    print(m(m>5))
    #END
    #START
    #array四则运算
    x=np.array([[1,2],[3,4]],dtype=np.float64)
    y=np.array([[5,6],[7,8]],dtype=np.float64)
    print(x+y)
    print(np.add(x,y))
    
    print(x-y)
    print(np.subtract(x,y))
    
    print(x*y)
    print(np.multiply(x,y))
    
    print(x/y)
    print(np.divide(x,y))
    
    print(np.sqrt(x))
    
    print(x.dot(y))
    print(np.dot(x,y))
    
    i=np.array([3,0])
    j=np.array([0,4])
    
    print(i.dot(j))
    print(np.dot(i.j))
    
    x=np.array([[1,2],[3,4]])
    print(x)
    print(np.sum(x))
    print(np.sum(x,axis=1))
    print(x,T)  //变形
    #END
    #START
    x=np,array([[1,2],[3,4],[5,6]])
    y=np.array([0,1])
    print(x+y)    //broadcasting会自动补齐y中缺少元素
    #END
    #START
    x=np,array([[1,2,3],[3,4,6],[5,6,7],[7,8,9]])
    print(x[1,0:2])
    y=np.array([1,0,1])
    z=np.empty_like(x)   //生成一个和x格式一致的array
    print(z)
    
    for i in range(4):
        z[i,:]=x[i,:]+y
    #END

    pandas介绍:
    用于处理.csv文件

    import pandas as pd
    pd.set_option('display.max_rows',1000)    //用于设置展示的行数和列数
    pd.set_option('display.max_columns',1000)
    
    user_input_cols=['','','','','','']   //用于自定义每一列的名称
    data_frame=pd.read_csv('diabetes.csv',index_col=0,header=None,
                            name=user_input_cols)   //读取文件
    
    print(df.head())   //展示文件的前几行
    **********************
    #dataframe   //数据域
    #series    //列
    
    df=pd.read_csv('diabetes.csv',index_col=0,header=None,
                            name=user_input_cols)
    print(df['series_name'])   //展示列名称
    
    #series相加
    print(df.series_name1+df.series_name2)
    print(df.series_name1+','+df.series_name2)
    new_series=df.series_name1+','+df.series_name2
    df['series_name1+series_name2']=new_series
    
    print(df.dtypes)
    **********************
    #查看数据特征
    print(df.describe())
    

关键字