亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python三大模型與十大常用算法實例發現

發布時間:2022-07-04 09:22:45 來源:億速云 閱讀:233 作者:iii 欄目:開發技術

這篇文章主要介紹了python三大模型與十大常用算法實例發現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇python三大模型與十大常用算法實例發現文章都會有所收獲,下面我們一起來看看吧。

    1 三大模型與十大常用算法【簡介】

    1-1 三大模型

     預測模型:神經網絡預測、灰色預測、擬合插值預測(線性回歸)、時間序列預測、馬爾科夫鏈預測、微分方程預測、Logistic 模型等等。應用領域:人口預測、水資源污染增長預測、病毒蔓延預測、競賽獲勝概率
    預測、月收入預測、銷量預測、經濟發展情況預測等在工業、農業、商業等經濟領域,以及環境、社會和軍事等領域中都有廣泛的應用。

    優化模型:規劃模型(目標規劃、線性規劃、非線性規劃、整數規劃、動態 規劃)、圖論模型、排隊論模型、神經網絡模型、現代優化算法(遺傳算法、模擬退火算法、蟻群算法、禁忌搜索算法)等等。應用領域:快遞員派送快遞的最短路徑問題、水資源調度優化問題、高速路
    口收費站問題、軍事行動避空偵察的時機和路線選擇、物流選址問題、商區布局規劃等各個領域。

     評價模型:模糊綜合評價法、層次分析法、聚類分析法、主成分分析評價法、
    灰色綜合評價法、人工神經網絡評價法等等。應用領域:某區域水資源評價、水利工程項目風險評價、城市發展程度評價、足球教練評價、籃球隊評價、水生態評價、大壩安全評價、邊坡穩定性評價

    1-2 十大常用算法

    python三大模型與十大常用算法實例發現
    python三大模型與十大常用算法實例發現

    2 python數據分析之Pandas 2-1什么是pandas

    一個開源的Python類庫:用于數據分析、數據處理、數據可視化

    •  高性能

    •  容易使用的數據結構

    • ·容易使用的使用分析工具

    很方便和其他類庫一起使用:

    • numpy:用于科學計算

    • scikit-learn:用于機器學習

    2-2 pandas讀取文件

    '''
    當使用Pandas做數據分析時,需要讀取事先準備好的數據集,這是做數據分析的第一步。
    Pandas提供了多種讀取數據的方法:
    read_csv()      用于讀取文本文件
    read_excel()    用于讀取文本文件
    read_json()     用于讀取json文件
    read_sql_query()讀取sql語句的
    
    通用流程:
    1-導入庫import pandas as pd
    2-找到文件所在位置(絕對路徑=全稱)(相對路徑=和程序在同一個文件夾中的路徑的簡稱)
    3-變量名=pd.讀寫操作方法(文件路徑,具體的篩選條件,...)
    ./  當前路徑
    ../ 上一級
    將csv中的數據轉換為DataFrame對象是非常便捷。和一般文件讀寫不一樣,它不需要你做打開文件、
    讀取文件、關閉文件等操作。相反,您只需要一行代碼就可以完成上述所有步驟,并將數據存儲在
    DataFrame中。
    
    '''
    import pandas as pd
    # 輸入參數:數據輸入的路徑【可以是文件路徑,可以是URL,也可以是實現read方法的任意對象。】
    df = pd.read_csv('s')
    print(df, type(df))
    # Pandas默認使用utf-8讀取文件
    print()
    import pandas as pd
    
    lxw = open(r"t.csv", encoding='utf-8')
    print(pd.read_csv(lxw))
    print()
    import os
    
    # 打印當前目錄
    print(os.getcwd())

    相關知識官網鏈接

    Pandas需要先讀取表格類型的數據,然后進行分析

    詳細版學習:

    # 1:
    import pandas as pd
    df = pd.read_csv('nba.csv')
    print(df)
    # 2:
    import pandas as pd
    df = pd.read_csv('nba.csv')
    # to_string() 用于返回 DataFrame 類型的數據,如果不使用該函數,則輸出結果為數據的前面 5 行和末尾 5 行,中間部分以 ... 代替(如上)
    print(df.to_string())
    # 3:
    import pandas as pd
    
    # 三個字段 name, site, age
    nme = ["Google", "Runoob", "Taobao", "Wiki"]
    st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
    ag = [90, 40, 80, 98]
    # 字典
    dict = {'name': nme, 'site': st, 'age': ag}
    df = pd.DataFrame(dict)
    # 保存 dataframe
    print(df.to_csv('site.csv'))
    # 4:
    import pandas as pd
    
    df = pd.read_csv('正解1.csv')
    # head( n ) 方法用于讀取前面的 n 行,如果不填參數 n ,默認返回 5 行
    # print(df.head())
    # df.head(50).to_csv('site4.csv')
    df.tail(10).to_csv('site4.csv')
    print("over!")
    # 5:
    import pandas as pd
    df = pd.read_csv('nba.csv')
    # 讀取前面 10 行
    print(df.head(10))
    # 6:
    import pandas as pd
    df = pd.read_csv('nba.csv')
    # tail( n ) 方法用于讀取尾部的 n 行,如果不填參數 n ,默認返回 5 行,空行各個字段的值返回 NaN
    print(df.tail())
    # 7:
    import pandas as pd
    
    df = pd.read_csv('nba.csv')
    #  讀取末尾 10 行
    print(df.tail(10))
    # 8:
    import pandas as pd
    df = pd.read_csv('正解1.csv')
    # info() 方法返回表格的一些基本信息
    print(df.info())
    # non-null 為非空數據,我們可以看到上面的信息中,總共 458 行,College 字段的空值最多
    • 所有csv、excel文件可在資源當中自行提用,沒有的可自行補充!

    • 提示:須提前安裝好pandas庫。【終端安裝命令:pip install pandas】

    import pandas as pd
    lxw = pd.read_csv('nba.csv')
    # 查看前幾行數據
    print(lxw.head())
    # 查看索引列
    print(lxw.index)
    # 查看列名列表
    print(lxw.columns)
    # 查看數據的形狀(返回行、列數)
    print(lxw.shape)
    # 查看每列的數據類型
    print(lxw.dtypes)
    print()
    # 讀取txt文件,自己指定分隔符、列名
    fpath = 'D:\PyCharm\數學建模大賽\數據分析-上-2\Python成績.csv'
    
    lxw = pd.read_csv(
        fpath,
        sep=',',
        header=None,
        names=['name', 'Python-score']
    )
    # print(lxw)
    lxw.to_csv('Python成績2.csv')
    # 讀取excel文件:
    import pandas as pd
    lxw = pd.read_excel('暑假培訓學習計劃.xls')
    print(lxw)

    注:如果最后這里【讀取excel文件]運行出錯,那就在終端安裝 pip install xlrd

    2-3 pandas數據結構

    '''
    1-Series:  一維數據,一行或一列
    【Series是一種類似于一維數組的對象,它由一組數據(不同數據類型)以		    及一組與之相關的數據標簽(即索引)組成】
    2-DataFrame:二維數據,整個表格,多行多列
    '''
    import pandas as pd
    # 1-1僅用數據列表即可產生最簡單的Series
    lxw = pd.Series([1, 'a', 5.2, 6])
    print(lxw)      # 運行結果解說:左邊為索引,右邊為數據
    # 獲取索引
    print(lxw.index)
    # 獲取數據
    print(lxw.values)
    print()
    # 1-2 創建一個具有索引標簽的Series
    lxw2 = pd.Series([5, '程序人生6', 666, 5.2], index=['sz', 'gzh', 'jy', 'xy'])
    print(lxw2)
    print(lxw2.index)
    # 寫入文件當中
    lxw2.to_csv('gzh.csv')
    print()
    # 1-3 使用過Python字典創建Series
    lxw_ej = {'python': 390, 'java': 90, 'mysql': 90}
    lxw3 = pd.Series(lxw_ej)
    print(lxw3)
    # 1-4 根據標簽索引查詢數據
    print(lxw3['java'])
    print(lxw2['gzh'])
    print(lxw2[['gzh', 'jy']])
    print(type(lxw2[['gzh', 'jy']]))
    print(lxw[2])
    print(type(lxw[2]))
    print()
    # 2 根據多個字典序列創建dataframe
    lxw_cj = {
        'ps': [86, 92, 88, 82, 80],
        'windows操作系統': [84, 82, 88, 80, 92],
        '網頁設計與制作': [92, 88, 97, 98, 83]
    }
    df = pd.DataFrame(lxw_cj)
    
    # print(df)
    # df.to_excel('lxw_cj.xlsx')      # 須提前安裝好openxlsx,即pip install openpyxl[可在終端安裝]
    print("over!")
    print(df.dtypes)
    print(df.columns)
    print(df.index)
    print()
    # 3-從DataFrame中查詢Series
    '''
    ·如果只查詢一行、一列的話,那么返回的就是pd.Series
    ·如果查詢多行、多列時,返回的就是pd.DataFrame
    
    '''
    # 一列:
    print(df['ps'])
    print(type(df['ps']))
    # 多列:
    print(df[['ps', 'windows操作系統']])
    print(type(df[['ps', 'windows操作系統']]))
    
    print()
    # 一行:
    print(df.loc[1])
    print(type(df.loc[1]))
    # 多行:
    print(df.loc[1:3])
    print(type(df.loc[1:3]))

    DataFrame 加強

    2-3-1 pandas數據結構之DataFrame
    # DataFrame數據類型
    '''
    DataFrame是Pandas的重要數據結構之一,也是在使用數據分析過程中最常用的結構之一,
    可以這么說,掌握了Dataframe的用法,你就 擁有了學習數據分析的基本能力。
    
    '''
    # 認識Dataframe結構:
    '''
    Dataframe是一個表格型的數據結構,既有行標簽,又有列標簽,她也被稱異構數據表,所謂
    異構,指的是表格中每列的數據類型可以不同,比如可以是字符串、整型或者浮點型等。
    
    Dataframe的每一列數據都可以看成一個Series結構,只不過,Dataframe為每列數據值增加了
    一個標簽。因此Dataframe其實是從Series的基礎上演變而來,并且他們有相同的標簽,在數據分析
    任務中Dataframe的應用非常廣泛,因此描述數據的更為清晰、直觀。
    
    同Series一樣,Dataframe自帶行標簽索引,默認為“隱式索引”。
    當然,你也可以用“顯式索引”的方式來設置行標簽。
    
    '''
    # 特點:
    '''
    Dataframe   每一列的標簽值允許使用不同的數據類型;
    Dataframe   是表格型的數據結構,具有行和列;
    Dataframe   中的每個數據都可以被修改
    Dataframe   結構的行數、列數允許增加或者刪除
    Dataframe   有兩個方向的標簽軸,分別是行標簽和列標簽
    Dataframe   可以對行和列執行算術運算
    
    '''
    # DataFrame 構造方法如下:
    
    # pandas.DataFrame( data, index, columns, dtype, copy)
    '''
    data:輸入的數據,可以是ndarray, series, list, dict, 標量以及一個Dataframe;
    
    index:行標簽,如果沒有傳遞index值,則默認行標簽是RangeIndex(0, 1, 2, ..., n)代表data的元素個數;
    
    columns:列標簽,如果沒有傳遞columns值,則默認列標簽是RangIndex(0, 1, 2, ..., n);
    
    dtype:要強制的數據類型,只允許使用一種數據類型,如果沒有,自行推斷;
    
    copy:從輸入復制數據。對于dict數據, copy=True, 重新復制一份。對于Dataframe或者ndarray輸入,類似于copy=False,它用的是試圖。
    
    '''
    # 1: 使用普通列表創建
    import pandas as pd
    lxw = [5, 2, 1, 3, 1, 4]
    df = pd.DataFrame(lxw)
    df2 = pd.Series(lxw)
    print(df)
    print(df2)
    print()
    # 2:使用嵌套列表創建
    import pandas as pd
    lxw = [['lxw', 21], ['cw', 23], ['tzs', 22]]
    df3 = pd.DataFrame(lxw, columns=['Name', 'Age'])
    print(df3)
    # 指定數值元素的數據類型為float
    # 注:dtype只能設置一個,設置多個列的數據類型,需要使用其他公式
    print()
    # 分配列標簽注意點
    import pandas as pd
    # 分配列標簽
    lxw2 = [['lxw', '男', 21, 6666], ['cw', '女', 22, 6520], ['ky', '女', 20, 5200], ['tzs', '男', 22, 6523]]
    # int滿足某列特征,會自動使用,不滿足,則會自動識別
    df = pd.DataFrame(lxw2, columns=['Name', 'xb', 'age', 'gz'], dtype=int)
    print(df)
    print(df['Name'].dtype)
    print()
    # ~字典創建:
    import pandas as pd
    lxw3 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 8, 'c': 9}]
    df = pd.DataFrame(lxw3, index=['first', 'second'])
    print(df)
    # 注:如果其中某些元素缺失,也就是字典的key無法找到對應的value將使用NaN代替
    print()
    # 使用列表嵌套字典創建一個DataFrame對象
    import pandas as pd
    # lxw3
    df1 = pd.DataFrame(lxw3, index=['first', 'second'], columns=['a', 'b'])
    df2 = pd.DataFrame(lxw3, index=['first', 'second'], columns=['a', 'b2'])
    print(df1)
    print("============================================")
    print(df2)
    import pandas as pd
    data = [['lxw', 10], ['wink', 12], ['程序人生6', 13]]
    df = pd.DataFrame(data, columns=['Site', 'Age'], dtype=float)
    print(df)
    # 1:使用 ndarrays 創建
    import pandas as pd
    data = {'Site': ['lxw', '程序人生6', 'wink'], 'Age': [10, 12, 13]}
    df = pd.DataFrame(data)
    print(df)
    # 2:還可以使用字典(key/value),其中字典的 key 為列名:
    import pandas as pd
    data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
    df = pd.DataFrame(data)
    print(df)
    # 沒有對應的部分數據為 NaN
    # 3:Pandas 可以使用 loc 屬性返回指定行的數據,如果沒有設置索引,第一行索引為 0,第二行索引為 1,以此類推:
    import pandas as pd
    data = {
      "calories": [420, 380, 390],
      "duration": [50, 40, 45]
    }
    # 數據載入到 DataFrame 對象
    df = pd.DataFrame(data)
    # 返回第一行
    print(df.loc[0])
    # 返回第二行
    print(df.loc[1])
    print(df.loc[2])
    # 注意:返回結果其實就是一個 Pandas Series 數據。
    # 也可以返回多行數據,使用 [[ ... ]] 格式,... 為各行的索引,以逗號隔開:
    2-3-1 Pandas 數據結構之Series
    # Pandas Series 類似表格中的一個列(column),類似于一維數組,可以保存任何數據類型。
    '''
    Series 由索引(index)和列組成,函數如下:
    pandas.Series( data, index, dtype, name, copy)
    參數說明:
    data:一組數據(ndarray 類型)。
    index:數據索引標簽,如果不指定,默認從 0 開始。
    dtype:數據類型,默認會自己判斷。
    name:設置名稱。
    copy:拷貝數據,默認為 False。
    
    '''
    import pandas as pd
    lxw = [1, 2, 3]
    myvar = pd.Series(lxw)
    print(myvar)
    print()
    # 如果沒有指定索引,索引值就從 0 開始,我們可以根據索引值讀取數據
    print(myvar[1])
    print()
    import pandas as pd
    lxw = ["Google", "Runoob", "Wiki"]
    myvar2 = pd.Series(lxw, index=['x', 'y', 'z'])
    print(myvar2)
    print()
    # 根據索引值讀取數據:
    print(myvar2['y'])
    print()
    # 也可以使用 key/value 對象,類似字典來創建 Series
    import pandas as pd
    lxw = {1: "Google", 2: "Runoob", 3: "Wiki"}
    myvar3 = pd.Series(lxw)
    print(myvar3)
    print()
    # 只需要字典中的一部分數據,只需要指定需要數據的索引即可
    myvar3 = pd.Series(lxw, index=[1, 2])
    print(myvar3)
    print()
    # 設置 Series 名稱參數
    import pandas as pd
    lxw = {1: "Google", 2: "Runoob", 3: "Wiki"}
    myvar4 = pd.Series(lxw, index=[1, 3], name="lxw-pro")
    print(myvar4)

    2-4查詢數據

    # Pandas查詢數據的四種方法:
    '''
    1-df.loc方法,根據行、列的標簽值查詢
    2-df.iloc方法,根據行、列的數字位置查詢
    3-df.where方法
    4-df.query方法
    建議:.loc既能查詢,又能覆蓋寫入,強烈推薦!
    
    '''
    # Pandas使用df.loc查詢數據的方法:
    '''
    1-使用單個label值查詢數據
    2-使用值列表批量查詢
    3-使用數值區間進行范圍查詢
    4-使用條件表達式查詢
    5-調用函數查詢
    
    '''
    # 注:以上方法,即適用于行,也使用于列
    import pandas as pd
    df = pd.read_csv('sites.csv')
    # print(df.head(10))
    df.set_index('create_dt', inplace=True)
    # print(df.index)
    a = df.index
    # 去重->轉為列表->排順序
    qc = sorted(list(set(a)))
    # print(qc)
    # 替換掉利潤率當中的后綴%
    df.loc[:, 'lrl'] = df['lrl'].str.replace("%", "").astype('int32')   # astype()    對數據類型進行轉換

    astype()相關知識闡述:

    '''
    Python中與數據類型相關函數及屬性有如下三個:type/dtype/astype
    type()    返回參數的數據類型    
    dtype    返回數組中元素的數據類型    
    astype()    對數據類型進行轉換    
    你可以使用 .astype() 方法在不同的數值類型之間相互轉換。a.astype(int).dtype # 將 a 的數值類型從 float64 轉換為 int
    '''

    這里運行的話,就會報錯:


    python三大模型與十大常用算法實例發現

    后面上網查找解決類似的問題,一番查找之后,終于解決問題

    # 替換掉利潤率當中的后綴%df['lrl'] = df['lrl'].map(lambda x: x.rstrip('%'))print(df)

    運行效果如下:

    python三大模型與十大常用算法實例發現

    # 查詢數據類型print(df.dtypes)# 打印文件前幾行print(df.head())

    2-4-1 使用單個label值查詢數據

    print(df.loc['2016-12-02', 'yye'])   # 得到指定時間里相對應的的單個值

    運行結果如下:
    python三大模型與十大常用算法實例發現

    # 得到指定時間內相對應的的一個Seriesprint(df.loc['2016-11-30', ['sku_cost_prc', 'sku_sale_prc']])

    運行結果如下:
    python三大模型與十大常用算法實例發現

    2-4-2使用值列表批量查詢

    # 得到Seriesprint(df.loc[['2016-12-05', '2016-12-31'], 'sku_sale_prc'])

    運行結果如下:
    提示:圖有點長,故只截取了部分
    python三大模型與十大常用算法實例發現

    # 得到DataFrameprint(df.loc[['2016-12-08', '2016-12-12'], ['sku_cnt', 'sku_sale_prc']])

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    2-4-3 使用數值區間進行范圍查詢

    # 行index按區間:print(df.loc['2016-12-02': '2016-12-08'], ['yye'])

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    # 列index按區間:print(df.loc['2016-12-12', 'yye': 'lrl'])

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    # 行和列都按區間查詢:print(df.loc['2016-11-30': '2016-12-02', 'sku_cnt': 'lrl'])

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    2-4-4 使用條件表達式查詢

    # 簡單條件查詢,營業額低于3的列表print(df.loc[df['yye'] < 3, :])# 可觀察營業額的boolean條件print(df['yye'] < 3)
    # 復雜條件查詢:print(df.loc[(df['yye'] < 5) & (df['yye'] > 2) & (df['sku_cnt'] > 1), :])

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    # 再次觀察這里的boolean條件print((df['yye'] < 5) & (df['yye'] > 2) & (df['sku_cnt'] > 1))

    運行部分結果如下:
    python三大模型與十大常用算法實例發現

    2-4-5 調用函數查詢

    # 直接寫lambda表達式print(df.loc[lambda df: (df['yye'] < 4) & (df['yye'] > 2), :])

    運行部分如果如下:
    python三大模型與十大常用算法實例發現

    # 函數式編程的本質:# 函數本身可以像變量一樣傳遞def my_query(df):    return df.index.str.startswith('2016-12-08')print(df.loc[my_query, :])

    遇到的問題:

    1、雖說三大模型十大算法【簡介】講的很是明確,可在網上要查詢相關模型或者算法還是很雜亂的,不是很清楚自己適合那一版本。
    2、學習pandas過程當中遇到查詢數據時遇【替換掉利潤率當中的后綴%】 出現差錯,后面通過網上查詢解決問題。

    關于“python三大模型與十大常用算法實例發現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“python三大模型與十大常用算法實例發現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    珠海市| 万全县| 紫金县| 台东市| 凤山市| 蒲江县| 将乐县| 鄂伦春自治旗| 玉溪市| 涡阳县| 印江| 虎林市| 镇康县| 丹东市| 罗定市| 洛川县| 四子王旗| 伊川县| 铜川市| 乌兰察布市| 巴中市| 青阳县| 修武县| 陆河县| 富蕴县| 河西区| 和硕县| 车险| 临潭县| 南丹县| 庆云县| 玉环县| 女性| 北海市| 鹤岗市| 思南县| 焦作市| 澄城县| 通河县| 自治县| 互助|