Python科學數據解析
05-06
1.數據型態
- 定性數據(Qualitative or Categorical Data):是一組表示事物性質、規定事物類別的文字表述型數據,不能將其量化,只能將其定性。
- 敘述特性或種類
- 定量數據(Quantitative or Numerical Data):可以被計數或測量。
- 定性分析與定量分析應該是統一的,相互補充的;定性分析是定量分析的基本前提,沒有定性的定量是一種盲目的、毫無價值的定量;定量分析使定性分析更加科學、準確,它可以促使定性分析得出廣泛而深入的結論。
- 定量分析是依據統計數據,建立數學模型,並用數學模型計算出分析對象的各項指標及其數值的一種方法。定性分析則是主要憑分析者的直覺、經驗,憑分析對象過去和現在的延續狀況及最新的信息資料,對分析對象的性質、特點、發展變化規律作出判斷的一種方法。
- 相比而言,前一種方法更加科學,但需要較高深的數學知識,而後一種方法雖然較為粗糙,但在數據資料不夠充分或分析者數學基礎較為薄弱時比較適用,更適合於一般的投資者與經濟工作者。但是必須指出,兩種分析方法對數學知識的要求雖然有高有低,但並不能就此把定性分析與定量分析截然劃分開來。事實上,現代定性分析方法同樣要採用數學工具進行計算,而定量分析則必須建立在定性預測基礎上,二者相輔相成,定性是定量的依據,定量是定性的具體化,二者結合起來靈活運用才能取得最佳效果。
- 不同的分析方法各有其不同的特點與性能,但是都具有一個共同之處,即它們一般都是通過比較對照來分析問題和說明問題的。正是通過對各種指標的比較或不同時期同一指標的對照才反映出數量的多少、質量的優劣、效率的高低、消耗的大小、發展速度的快慢等等,才能作為鑒別、下判斷提供確鑿有據的信息。
舉個例子:
◆ 定性分析:
分析: _ 知幾寫了很多篇文章◆ 定量分析:分析:_ 知幾寫了107篇文章。我的理解是定量分析主要關注的是頻率;定性分析關注的是意義。
定量數據又可分為:
- 離散數據(Discrete Data):指其數值只能用自然數或整數單位計算,例如企業的人數
- 只能用自然數或整數單位計算
- 只能按計量單位數計數,可由一般計數方法取得
- 連續數據(Continuous Data):在一定區間內可以任意取值的數據,其數值是連續不斷的,例如人的身高
- 一定區間內可以任意取值的數據,其數值是連續不斷的,相鄰兩個數值可取無限個數值
- 其數值只能用測量或計量的方法獲得
2.結構化vs半結構化vs非結構化數據
- 結構化數據
- 每筆數據都有固定的欄位、固定的格式,方便程序進行後續取用與分析
- 例如資料庫
- 半結構化數據
- 數據介於數據化結構與非結構化數據之間
- 數據具有欄位,也可以依據欄位來進行查找,使用方便,但每筆數據的欄位可能不一致
- 例如:XML,JSON
- 非結構化數據
- 沒有固定的格式,必須整理以後才能存取
- 沒有格式的文字、網頁數據
1.結構化數據
- 結構化數據也稱作行數據,是由二維表結構來邏輯表達和實現的數據,嚴格地遵循數據格式與長度規範,主要通過關係型資料庫進行存儲和管理。
- 對數據的處理和撈取可以通過SQL語句。
2.半結構化數據 - XML
<users>
<user>
<name>xsl</name> <gender>boy</gender> <age>23</age> </user> <user> <name>xlm</name> <gender>girl</gender> </user></users>- 可以使用欄位存儲數據內容
- 欄位不固定,例如xlm就少了age欄位
- 可以彈性的存放各種欄位格式的數據
3.半結構化數據 - JSON
[ user:{ name:xsl, gender:boy, age:12,}, user:{ name:xsl, gender:girl,}
]
- 如同XML可以使用欄位存儲數據內容
- 使用
Key:Value
存放數據 - 不用宣告欄位的結尾,可以比XML更快更有效傳輸數據
4.非結構化數據
- 沒有固定的數據格式
- 例如網站數據
- 必須透過ETL(Extract,Transformation,Loading)工具將數據轉換為結構化數據才能取用
由於我們常見的數據是非結構化數據,為了進行數據分析,我們就需要從非結構化數據中挖掘數據,我們就需要先把非結構化數據轉換成結構化數據,此時我們就可以使用ETL工具。
數據抽取、轉換、存儲過程
3.Python IO與檔案處理
Python提供了默認操作文件所必需的基本功能和方法。可以使用文件對象執行大部分文件操作。
打開文件
在讀取或寫入文件之前,需要使用Python的內置open()
函數打開文件。此函數創建一個文件對象,該對象將用於調用與其相關聯的其他支持方法。
語法:
f = open(file_name [, access_mode][, buffering])
file_name
參數是一個字元串值,指定要訪問的文件的名稱。access_mode
確定文件打開的模式,即讀取,寫入,追加等。可能的值的完整列表如下表所示。 這是一個可選參數,默認文件訪問模式為(r - 也就是只讀)。bufferin
如果buffering值設置為0,則不會發生緩衝。 如果緩衝值buffering為1,則在訪問文件時執行行緩衝。如果將緩衝值buffering指定為大於1的整數,則使用指定的緩衝區大小執行緩衝操作。如果為負,則緩衝區大小為系統默認值(默認行為)。
write()
方法:將任何字元串寫入打開的文件。 重要的是要注意,Python字元串可以是二進位數據,而不僅僅是文本。close()
方法:刷新任何未寫入的信息並關閉文件對象,之後不能再進行寫入操作。
f =open(zj.txt, w) #讀寫模式
f.write(hello xlm) #寫入 hello xlmf.close() 關閉文件#用with寫with open(zj.txt, r) as f: print(f.read()) #全部讀取with open(zj.txt, r) as f: for line in f.readlines(): print(line) #分行列印出來 print(line.strip()) #去除多餘的換行打開本地文件,可以看到`hello xlm` 已經寫入文件
推薦閱讀:
※開源IP代理池續——整體重構
※開篇明義
※Python 進程內存增長解決方案
※【資料大放送】61頁PPT帶你1小時快速入門,破冰Python!
TAG:Python |