zoukankan      html  css  js  c++  java
  • 数据分析常用操作

    Numpy
        np.array() 
            #数组的存储数据类型必须是统一的,如果不是统一的会按照 #str>float>int #转换为统一类型
            np.array([1,2,3]) #返回一个一维数组
            arry = np.array([[1,2,3],[1,1,1],[1,1,1]]) #返回二维数组
        
        arry.shape()
            arry.shape(arry) #传入一个数组 返回数组的形状
        
        np.full()
            np.full(shape=(5,6),fill_value = 55) #返回一个指定纬度的制定值的数组
        
        np.linspace()
            np.linspace(0,100,num=10) #返回一个指定区间等差数列 一维数组
        
        np.arange()
            np.arange(0,100,2) #返回一个指定区间的一维数组
            
        np.random.randint()    
            np.random.randint(0,100,size=(6,7)) #返回指定维度,指定区间的,随机数组
        
        np.random.seed()
            np.random.seed(10) #固定随机因子
            
        np.random.random()
            np.random.random(size=(4,5)) #返回0到1之间 ,指定维度的二维数组
        属性
            arry.ndim # 返回数组的形状
            
            arry.size  #返回数组的大小
            
            arry.dtype #返回数组元素的类型
    
        切片 
            #,左边是行 右边是列
            arr[0:2] #切前两行
            arr[:,0:2] 切前两列
            arr[::-1] #行倒叙
            arr[:,::] #列倒序
            
        变形
            #保证改变的形状要可以装的下原本形状
            arr1.reshape((4)) # 指定数组的形状
            arr1.reshape((2,-1)) #-1是计算机自己计算
            
        级联
            #0 是列 1是行
            #必须保证级联的 行/列 是一样的
            
            a1 = np.random.randint(0,10,size=(4,5))
            a2 = np.random.randint(0,10,size=(4,5))
            
            np.concatenate((a1,a2),axis=0)
            
        切分
            #0是行  1是列
            np.split(al,[2],axis=1)
            
               
        聚合
            0是列  1是行 不写是全部
            a1.sum(axis=0) #求每一列的和
            a1.sum() #求全部的和
        排序
            0是列 1是行
            np.sort(a1,axis=0) #每一列从小到大排序 返回新的数组
            a1.sort(axis=1) #没一行排序  映射会原数组
        
        
        
    
    Pandas
        导包
            impost pandas as pd
            from pandas import Series,DataFrame
            
        Series
            #Series必须是一维
            s1 = Series(data=[1,2,3,4,5]) #创建一个Series对象 隐式索引
            s1[0] #1
            s2 = Series(data=[1,2,3,4,5],index=['a','b','c','d','e') #创建一个Series对象 隐式索引 和显示索引
            s2['a'] #1
            
            a1[[1,2,3]] #1,2,3
            
            loc显示索引
            iloc 是隐私索引
            
            a['7'] = 7 增加一个值
            
            notnill  #值是nitll返回Flase
            isnill #值是nitll返回True
            
        DataFrame
            创建
            
                DataFrame(data=np.random.randint(60,120,size=(3,3),index=['a','b','c'],columns=['A','B','C'])
                #data 数据源   size 形状   index 行显示索引  columns 列显示索引
                #字典的 key是列索引
                dfc = {
                    '张三':[150,150,150],
                    '李四':[0,0,0,0]
                }
                
                DataFrame(data=dic)
            
            属性
                df.values() #显示数据源
                df.index() #返回行索引
                df.columns() #返回列索引
                df.shape() #返回DataFrame的形状
                
            修改索引
                df.index = ['','']修改行索引
                df.columns = ['',''] 修改列索引
            取值
                #中括号中显示索引 获取列
                df['lisi'] #获取列
                df[['lisi','张三']]#获取多列
                
                loc # 显示索引 ,左边是行 右边是列
                df.loc['语文'] #获取行
                
                iloc # 隐式索引 ,左边是行 右边是列
                df.iloc[0] #获取行的
                 
                df.ioc[['理综','数学'],'张三'] #取得一列的多行 
                
                
            切片
                左边是行 右边是列 直接[]代表行
                df[0:2] #获取前两行
                
                df.iloc[:,0:2]  #获取前两列
                 
                df.loc[:,'张三':'李四'] #显示索引切出前两列
                
                df['语文':'数学'] #显示索引取出前两行
                
            
                 
            运算
                qizhong = df
                qimo = df
                
                qimo['张三'] = [145,140,150,138] #修改qimo中张三列的行成绩
                
            
                (qizhong + qimo)/2  #qizhong 加上 qimo 除与2
            
            
                qizhong.loc['数学',zhangsan] = 0 #取出张三列,的数学成绩全部改为0
                
            
            数据清洗
                all,any 1是行 0是列
                df.isnill #把所有的值以布尔值显示是nill的显示True
                df.isnill().any(axis=1) #any只要有true就显示true or
                df.isnill().all(axis=1) #全部是true就返回True否则返回Flse
                drop_index = df.loc[df.isnill().any(axis=1)].index #获取所有带有空值的行索引
                
                
                drop行是0 列是1
                df.drop(labels=drop_index,axis=0) #删除索引对应的行
                df.dropna(axis=0) #删除有空值的行
                
                
                filna 1是行 0是列
                df.filna(value=33) # 用333填充所有空值
                df.filna(method='bfill',axis=0) # 用列下面的值进行填充
                df.filna(method='ffill',axis=0) # 用列上面的值进行填充
                df.filna(method='ffill',axis=1) # 用行前面的值进行填充
                df.filna(method='bfill',axis=1) # 用行后面的值进行填充
            
    
    matplotlib
        plt.imread()
            img_arr = plt.imread('./cat.jpg') #返回一个图片对应维度的数组
            img_arr = img_arr - 50 #可以进行减法操作
    
        plt.imshow()
            plt.imshow(img_arr) #放入图片对应维度的数组显示图片
  • 相关阅读:
    设计阶段如何画用例视图(UseCase View)
    如何进行博客中的摘要设计
    浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)<转>
    设计漂亮的样式表是一门艺术<轉>
    推荐几个Net开源项目
    使用Ajax和Jquery实现GridView的展开、合并
    36个引人注目JQuery导航菜单
    Nunit中如何进行事务性单元测试
    推荐Jquery 40个漂亮的导航菜单设计
    Highcharts:高交互性的javascript图表类库
  • 原文地址:https://www.cnblogs.com/pythonz/p/11111654.html
Copyright © 2011-2022 走看看