之前在寫python的資料處理庫的安裝教程時寫過一點介紹。但是不是很詳細,最近在整理複習,所以寫篇部落格整理下。
numpy是python科學計算的基礎包,它提供:
快速高效的多維陣列物件ndarray;
直接對陣列執行數**算及對陣列執行元素級計算的函式;
線性代數運算、隨機數生成;
將c、c++、fortran**整合到python的工具等。
在進入正題之前,我們需要對python中的資料複製進行說明,這也是筆者之前一直忽略的地方。與其他語言不同,為了節省空間以及適應大資料量的處理工作,python對資料複製分成了幾種型別:
a=b:a和b完全相同,並且指向磁碟同一塊資料
c=a.view():a和c指向不同的東西,磁碟中儲存位置不同,但是共用元素值,類似於資料庫中的檢視
d=a.copy():a和d是完全不同的兩個東西
引入numpy的方式:import numpy as np
1.numpy陣列(array)的建立
通過array方式建立,向array中傳入乙個list實現
一維陣列的建立:
>>> np.array([1,2,3])
array([1, 2, 3])
二維陣列的建立:
>>> np.array([[1,2,3],[4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
通過arange建立陣列:
例如:建立乙個0-1間隔為0.1的行向量,從0開始,不包括1:
>>> np.arange(0,1,0.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
例:通過對齊廣播方式生成乙個多維的陣列:
>>> np.arange(1,60,10).reshape(-1,1) + np.arange(0,6)
array([[ 1, 2, 3, 4, 5, 6],
[11, 12, 13, 14, 15, 16],
[21, 22, 23, 24, 25, 26],
[31, 32, 33, 34, 35, 36],
[41, 42, 43, 44, 45, 46],
[51, 52, 53, 54, 55, 56]])
通過linspace函式建立陣列:
下例中建立乙個0~1間隔為1/9的行向量(按等差數列形式生成),從0開始,包括1:
>>> np.linspace(0,1,10)
array([0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
通過logspace函式建立陣列:
下例中建立乙個1~100,有20個元素的行向量(按等比數列形式生成),
其中0表示10^0=1,2表示10^2=100,從1開始,包括100
>>> np.logspace(0,2,20)
array([ 1. , 1.27427499, 1.62377674, 2.06913808,
2.6366509 , 3.35981829, 4.2813324 , 5.45559478,
6.95192796, 8.8586679 , 11.28837892, 14.38449888,
18.32980711, 23.35721469, 29.76351442, 37.92690191,
48.32930239, 61.58482111, 78.47599704, 100. ])
未完待續。。 Python 資料處理
將檔案切分,存入列表 strip split with open james.txt as jaf data jaf.readline james data.strip split 資料檔案為 2 34,3 21,2.34,2.45,3.01,2 01,2 01,3 10,2 22 print ja...
Python 資料處理
本場 chat 為 python 資料處理課程,包括 python 基礎知識 極簡教程 提公升 python 執行效率的方法 爬蟲簡介 scrapy selenium 自動化測試框架 簡易分布式 redis 分詞程式設計 jieba 資料儲存 本地資料上傳 hive 通過本場 chat 讀者可學到以...
Python資料處理
用傳統的電子 來處理資料不僅效率低下,而且無法處理某些格式的資料,對於混亂或龐大的資料集更是束手無策。本書將教你如何利用語法簡單 容易上手的python輕鬆處理資料。作者通過循序漸進的練習,詳細介紹如何有效地獲取 清洗 分析與呈現資料,如何將資料處理過程自動化,如何安排檔案編輯與清洗任務,如何處理更...