1、NumPy:數組計算數組
一、NumPy是高性能科學計算和數據分析的基礎包。它是pandas等其餘各類工具的基礎。less
二、NumPy的主要功能:dom
三、安裝方法:pip install numpy
四、引用方式:import numpy as npide
2、NumPy:ndarray-多維數組對象函數
一、建立ndarray:np.array()工具
二、ndarray是多維數組結構,與列表的區別是:性能
三、經常使用屬性:ui
四、經常使用方法spa
3、NumPy:ndarray-數據類型code
4、NumPy:ndarray-建立
建立ndarray:
array() 將列表轉換爲數組,可選擇顯式指定dtype
arange() range的numpy版,支持浮點數
linspace() 相似arange(),第三個參數爲數組長度
zeros() 根據指定形狀和dtype建立全0數組
ones() 根據指定形狀和dtype建立全1數組
empty() 根據指定形狀和dtype建立空數組(隨機值)
eye() 根據指定邊長和dtype建立單位矩陣
5、NumPy:索引和切片
1、數組和標量之間的運算 a+1 a*3 1//a a**0.5 2、一樣大小數組之間的運算 a+b a/b a**b 3、數組的索引: 一維數組:a[5] 多維數組: 列表式寫法:a[2][3] 新式寫法:a[2,3] (推薦) 數組的切片: 一維數組:a[5:8] a[4:] a[2:10] = 1 多維數組:a[1:2, 3:4] a[:,3:5] a[:,1] 四、強調:與列表不一樣,數組切片時並不會自動複製,在切片數組上的修改會影響原數組。
【解決方法:copy()】
6、NumPy:布爾型索引
問題:給一個數組,選出數組中全部大於5的數。
答案:a[a>5]
原理:
a>5會對a中的每個元素進行判斷,返回一個布爾數組
布爾型索引:將一樣大小的布爾數組傳進索引,會返回一個由全部True對應位置的元素的數組
問題2:給一個數組,選出數組中全部大於5的偶數。
問題3:給一個數組,選出數組中全部大於5的數和偶數。
答案:
a[(a>5) & (a%2==0)]
a[(a>5) | (a%2==0)]
import numpy as np
a = np.array([1,2,3,4,5,4,7,8,9,10])
a[a>5&(a%2==0)] #注意加括號,不加括號錯誤,以下
輸出:array([ 1, 2, 3, 4, 5, 4, 7, 8, 9, 10])
a[(a>5)&(a%2==0)]
輸出:array([ 8, 10])
7、NumPy:花式索引*
問題1:對於一個數組,選出其第1,3,4,6,7個元素,組成新的二維數組。 答案:a[[1,3,4,6,7]] 問題2:對一個二維數組,選出其第一列和第三列,組成新的二維數組。 答案:a[:,[1,3]]
8、NumPy:通用函數’
通用函數:能同時對數組中全部元素進行運算的函數
常見通用函數:
一元函數:abs, sqrt, exp, log, ceil,
numpy.sqrt(array) 平方根函數 numpy.exp(array) e^array[i]的數組 numpy.abs/fabs(array) 計算絕對值 numpy.square(array) 計算各元素的平方 等於array**2 numpy.log/log10/log2(array) 計算各元素的各類對數 numpy.sign(array) 計算各元素正負號 numpy.isnan(array) 計算各元素是否爲NaN numpy.isinf(array) 計算各元素是否爲NaN numpy.cos/cosh/sin/sinh/tan/tanh(array) 三角函數 numpy.modf(array) 將array中值得整數和小數分離,做兩個數組返回 numpy.ceil(array) 向上取整,也就是取比這個數大的整數 numpy.floor(array) 向下取整,也就是取比這個數小的整數 numpy.rint(array) 四捨五入 numpy.trunc(array) 向0取整 numpy.cos(array) 正弦值 numpy.sin(array) 餘弦值 numpy.tan(array) 正切值
二元函數:add, substract, multiply,
numpy.add(array1,array2) 元素級加法 numpy.subtract(array1,array2) 元素級減法 numpy.multiply(array1,array2) 元素級乘法 numpy.divide(array1,array2) 元素級除法 array1/array2 numpy.power(array1,array2) 元素級指數 array1^array2 numpy.maximum/minimum(array1,aray2) 元素級最大值 numpy.fmax/fmin(array1,array2) 元素級最大值,忽略NaN numpy.mod(array1,array2) 元素級求模 numpy.copysign(array1,array2) 將第二個數組中值得符號複製給第一個數組中值 numpy.greater/greater_equal/less/less_equal/equal/not_equal (array1,array2) 元素級比較運算,產生布爾數組 numpy.logical_end/logical_or/logic_xor(array1,array2)元素級的真值邏輯運算
9、補充知識:浮點數特殊值
一、浮點數:float
二、浮點數有兩個特殊值:
二、NumPy中建立特殊值:np.nan np.inf
三、在數據分析中,nan常被用做表示數據缺失值
既然nan連本身都不相等,那麼怎麼判斷是否是NAN呢?
用a==a 只要返回False就能判斷
10、NumPy:數學和統計方法
經常使用函數:
11、NumPy:隨機數生成
隨機數生成函數在np.random子包內
經常使用函數