NumPy是用於科學計算的一個開源Python擴充程序庫,它爲Python提供了高性能的數組與矩陣運算處理能力,NumPy爲Python帶來了真正的多位數組功能,而且提供了豐富的函數庫處理這些數組。經常使用的數學函數都支持向量化運算,使得這些數學函數可以直接對數組進行操做,將原本須要在Python級別進行的循環放到C語言的運算,明顯的提升了程序的運算速度。html
簡單來講,NumPy是高性能科學計算和數據分析的基礎包,它是pandas等其餘各類工具的基礎。web
安裝方法:pip install numpy數組
引用方式:import numpy as np數據結構
NumPy的核心功能是「ndarray」(即n-dimensional array,多維數組)數據結構。app
特色:機器學習
連續內存分配、向量化操做、布爾選擇、分片(sliceability)ide
NumPy的主要功能:函數
ndarray,一個多位數組結構,高效且節省空間工具
無需循環對數組數據進行運算性能
讀寫磁盤數據的工具以及用於操做內存映射文件的工具
線性代數、隨機數生成和傅里葉變換功能
用於繼承C、C++等代碼的工具
ndarray.ndmin數組軸的個數
ndarray.shape數組的維度,這是一個指示數組在每一個維度上大小的整數元祖。例如一個n排m列的矩陣,它的shape屬性將是(2,3)
ndarray.size數組個數的總個數,等於shape屬性中元祖元素的乘積。
ndarray.dtype一個用於描述數組中元素類型的對象,能夠創造或指定dtype使用標準Python類型。另外NumPy提供它本身的數據類型。
ndarray.itemsize數組中每一個元素的字節大小,例如,一個元素類型爲float64的數組,itemsize屬性值爲8(64/8),又如,一個元素類型爲complex32的數組item屬性爲4(32/8)
T :數組的轉置(對高維度數組而言)
dtype: 數組元素的數據類型
size:數組元素的個數
建立ndarray:
array(): 將列表轉換爲數組,可選擇顯示指定dtype
arange(): range 的NumPy版,支持浮點數
linspace(): 相似arange(),第三個參數爲數組長度
zeros(): 根據指定形狀和dtype建立全0數組
ones(): 根據指定形狀和dtype建立全1數組
reshape(): 更改數組的維度
.ndim :維度 .shape :各維度的尺度 (2,5) .size :元素的個數 10 .dtype :元素的類型 dtype(‘int32’) .itemsize :每一個元素的大小,以字節爲單位 ,每一個元素佔4個字節 ndarray數組的建立 np.arange(n) ; 元素從0到n-1的ndarray類型 np.ones(shape): 生成全1 np.zeros((shape), ddtype = np.int32) : 生成int32型的全0 np.full(shape, val): 生成全爲val np.eye(n) : 生成單位矩陣 np.ones_like(a) : 按數組a的形狀生成全1的數組 np.zeros_like(a): 同理 np.full_like (a, val) : 同理 np.linspace(1,10,4): 根據起止數據等間距地生成數組 np.linspace(1,10,4, endpoint = False):endpoint 表示10是否做爲生成的元素
.reshape(shape) : 不改變當前數組,依shape生成
.resize(shape) : 改變當前數組,依shape生成
.swapaxes(ax1, ax2) : 將兩個維度調換
.flatten() : 對數組進行降維,返回摺疊後的一位數組
數據類型的轉換 :a.astype(new_type) : eg, a.astype (np.float)
數組向列表的轉換: a.tolist()
a = np.array ([9, 8, 7, 6, 5, ])
a[1:4:2] –> array([8, 6]) : a[起始編號:終止編號(不含): 步長]
a = np.arange(24).reshape((2, 3, 4))
a[1, 2, 3] 表示 3個維度上的編號, 各個維度的編號用逗號分隔
a [:,:,::2 ] 缺省時,表示從第0個元素開始,到最後一個元素
np.abs(a) np.fabs(a) : 取各元素的絕對值 np.sqrt(a) : 計算各元素的平方根 np.square(a): 計算各元素的平方 np.log(a) np.log10(a) np.log2(a) : 計算各元素的天然對數、10、2爲底的對數 np.ceil(a) np.floor(a) : 計算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整) np.rint(a) : 各元素 四捨五入 np.modf(a) : 將數組各元素的小數和整數部分以兩個獨立數組形式返回 np.exp(a) : 計算各元素的指數值 np.sign(a) : 計算各元素的符號值 1(+),0,-1(-) . np.maximum(a, b) np.fmax() : 比較(或者計算)元素級的最大值 np.minimum(a, b) np.fmin() : 取最小值 np.mod(a, b) : 元素級的模運算 np.copysign(a, b) : 將b中各元素的符號賦值給數組a的對應元素
sum(a, axis = None) : 依給定軸axis計算數組a相關元素之和,axis爲整數或者元組 mean(a, axis = None) : 同理,計算平均值 average(a, axis =None, weights=None) : 依給定軸axis計算數組a相關元素的加權平均值 std(a, axis = None) :同理,計算標準差 var(a, axis = None): 計算方差 eg: np.mean(a, axis =1) : 對數組a的第二維度的數據進行求平均 a = np.arange(15).reshape(3, 5) np.average(a, axis =0, weights =[10, 5, 1]) : 對a第一各維度加權求平均,weights中爲權重,注意要和a的第一維匹配 min(a) max(a) : 計算數組a的最小值和最大值 argmin(a) argmax(a) : 計算數組a的最小、最大值的下標(注:是一維的下標) unravel_index(index, shape) : 根據shape將一維下標index轉成多維下標 ptp(a) : 計算數組a最大值和最小值的差 median(a) : 計算數組a中元素的中位數(中值)
詳細方法連接:http://www.cnblogs.com/TensorSense/p/6795995.html
anaconda是Python的包管理器和環境管理器。
anaconda附帶了一大批經常使用數據科學包,附帶了conda、Python和150多個科學包及其依賴項。提供包管理功能,使得Windows平臺安裝第三方包常常失敗的場景得以解決。提供環境管理功能,解決多版本Python並存、切換的問題。
官網下載安裝包:官網地址https://www.anaconda.com/download/
值得注意的是anaconda沒有快捷方式(pip3 install IPython,更加方便運行)
tips:什麼是Jupyter Notebook?
前身是IPython notebook,是一個開源的web application,能夠建立和分享包含代碼,視圖,註釋的文檔,也能夠用於數據統計,分析,建模,機器學習等領域。