天天看點

AI第一天總結Pandas統計分析

自然智能

        自然智能(Natural Intelligence,NI),指人通過大腦的運算和決策産生有價值的行為。這些行為包括了人的大腦思考及決策、耳朵聽力及判斷、眼睛視覺及判斷、鼻子嗅覺及判斷、皮膚觸覺及判斷等,展現在人行為的方方面面。

人工智能

                人工智能(Artificial intelligence)簡稱AI。人工智能是計算機科學的一個分支,它企圖了解智能的本質,并生産出一種新的能以人類智能相似的方式做出反應的智能機器,是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學

分類

人工智能目前分為弱人工智能和強人工智能和超人工智能。

  1. 弱人工智能:弱人工智能(Artificial Narrow Intelligence /ANI),隻專注于完成某個特定的任務,例如語音識别、圖象識别和翻譯等,是擅長于單個方面的人工智能。它們隻是用于解決特定的具體類的任務問題而存在,大都是統計資料,以此從中歸納出模型。由于弱人工智能智能處理較為單一的問題,且發展程度并沒有達到模拟人腦思維的程度,是以弱人工智能仍然屬于“工具”的範疇,與傳統的“産品”在本質上并無差別。

2 強人工智能:強人工智能(Artificial General Intelligence /AGI),屬于人類級别的人工智能,在各方面都能和人類比肩,它能夠進行思考、計劃、解決問題、抽象思維、了解複雜理念、快速學習和從經驗中學習等操作,并且和人類一樣得心應手。

3 超人工智能:超人工智能(Artificial Super intelligence/ASI),在幾乎所有領域都比最聰明的人類大腦都聰明許多,包括科學創新、通識和社交技能。在超人工智能階段,人工智能已經跨過“奇點”,其計算和思維能力已經遠超人腦。此時的人工智能已經不是人類可以了解和想象。人工智能将打破人腦受到的次元限制,其所觀察和思考的内容,人腦已經無法了解,人工智能将形成一個新的社會。

我們現階段還處于若人工智能階段。

機器學習

        機器學習(Machine Learning)簡稱ML。機器學習屬于人工智能的一個分支,也是人工智能的和核心。機器學習理論主要是設計和分析一些讓計算機可以自動”學習“的算法。

深度學習

        深度學習(Deep Learning)簡稱DL。最初的深度學習是利用深度神經網絡來解決特征表達的一種學習過程。深度神經網絡本身并不是一個全新的概念,可大緻了解為包含多個隐含層的神經網絡結構。為了提高深層神經網絡的訓練效果,人們對神經元的連接配接方法和激活函數等方面做出相應的調整。深度學習是機器學習研究中的一個新的領域,其動機在于建立、模拟人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋資料,如圖象、聲音、文本。

學習重點

        Numpy、Pandas、Matplotlib, 、pyecharts

        Pyecharts官網:pyecharts - A Python Echarts Plotting Library built with love.

        Matplotlib官網:matplotlib.pyplot — Matplotlib 3.5.0 documentation

        Pyplot tutorial | Matplotlib 中文

        Pandas官網:Pandas: 強大的 Python 資料分析支援庫 | Pandas 中文

        Numpy官網:NumPy 參考手冊 | NumPy 中文

資料分析流程

        熟悉工具-明确目的-擷取資料-資料處理-資料分析-驗證結果-結果呈現-資料應用

Pandas統計分析

        Pandas是資料分析三大劍客之一,是Python的核心資料分析庫,它提供了快速、靈活、明确的資料結構,能夠簡單、直覺、快速地處理各種類型的資料

        Pandas能夠處理以下類型的資料。 

                1.與SQL或Excel表類似的資料。 

                2.有序和無序(非固定頻率)的時間序列資料。 

                3.帶行、列标簽的矩陣資料。

                4.任意其他形式的觀測、統計資料集。

seires 對象

        Series是Python的Pandas庫中的一種資料結構,它類似一維數組,由一組資料以及與這組資料相關的标簽(即索引)組成,或者僅有一組資料沒有索引也可以建立一個簡單的Series。Series可以存儲整數、浮點數、字元串、Python對象等多種類型的資料。

建立一個series對象

建立Series對象主要使用Pandas的Series()方法,文法如下:

s=pd.Series(data,index=index)

參數說明: 

data:表示資料,支援Python字典、多元數組、标量值(即隻有大小,沒有方向的量。也就是說,隻是一個數值,如s=pd.Series(5))。 index:表示行标簽(索引)。 

傳回值:Series對象。

說明 當data參數是多元數組時,index長度必須與data長度一緻。如果沒有指定index參數,則自動建立數值型索引(從0~data資料長度-1)。

【示例02】 在成績表添加一列“實體”成績。(示例位置:資源包\MR\Code\03\02)建立一個Series對象,在成績表中添加一列“實體”成績。程式代碼如下:

01 import pandas as pd 02 s1=pd.Series([88,60,75]) 03 print(s1)

上述舉例,如果通過Pandas子產品引入Series對象,那麼就可以直接在程式中使用Series對象了。主要代碼如下:

01 from pandas import Series 02 s1=Series([88,60,75])

擷取series索引和值

擷取Series索引和值主要使用Series的index和values方法。

series操作類似于pyhton list操作 大家可以大膽實踐

DataFrame對象

        DataFrame是Pandas庫中的一種資料結構,它是由多種類型的列組成的二維表資料結構,類似于Excel、SQL或Series對象構成的字典。DataFrame是最常用的Pandas對象,它與Series對象一樣支援多種類型的資料。

建立一個DataFrame對象

建立DataFrame主要使用Pandas的DataFrame()方法,文法如下:

pandas.DataFrame(data,index,columns,dtype,copy) 參數說明: 

data:表示資料,可以是ndarray數組、Series對象、清單、字典等。 

index:表示行标簽(索引)。

columns:列标簽(索引)。 

dtype:每一列資料的資料類型,其與Python資料類型有所不同,如object資料類型對應的是Python的字元型。

表3.1為Pandas資料類型與Python資料類型的對應表。

category作業,查詢datetime64,timedela[ns],category

Timedelta在pandas中是一個表示兩個datetime值之間的差(如日,秒和微妙)的類型,2個Datetime資料運算相減得出的結果就是一個Timedelta資料類型

通過二維數組建立DataFrame

通過字典建立DataFrame 通過字典建立DataFrame,需要注意:字典中的value值隻能是一維數組或單個的簡單資料類型,如果是數組,要求所有數組長度一緻;如果是單個資料,則每行都添加相同資料。

導入.xls或.xlsx檔案

導入.xls或.xlsx檔案主要使用Pandas的read_excel()方法,文法如下:

pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False, dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None, na_values=None,keep_default_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None, comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True,**kwds)

常用參數說明: 

sheet_name:None、字元串、整數、字元串清單或整數清單,預設值為0。字元串用于工作表名稱,整數為索引表示工作表位置,字元串清單或整數清單用于請求多個工作表,為None時擷取所有工作表

header:指定作為列名的行,預設值為0,即取第一行的值為列名。資料為除列名以外的資料;若資料不包含列名,則設定header=None。 

names:預設值為None,要使用的列名清單。 

index_col:指定列為行索引,預設值為None,索引0是DataFrame的行标簽。

usecols:int、list清單或字元串,預設值為None。 如果為None,則解析所有列。 如果為int,則解析最後一列。 如果為list清單,則解析列号清單的列。 如果為字元串,則表示以逗号分隔的Excel列字母和列範圍清單(例如“A:E”或“A,C,E:F”)。範圍包括雙方。 squeeze:布爾值,預設值為False,如果解析的資料隻包含一列,則傳回一個Series。 

dtype:列的資料類型名稱或字典,預設值為None。例如{'a':np.float64,'b':np.int32}。 

skiprows:省略指定行數的資料,從第一行開始。 

skipfooter:省略指定行數的資料,從尾部數的行開始。

繼續閱讀