Python—实训day7上—Nmupy数值计算基础
Numpy是用于數據科學計算的基礎模塊,不但能夠完成科學計算的任務,而且能夠被用作高效的多維數據容器,可用作存儲和處理大型矩陣,它的運算速度會比Python自帶的列表運算速度要快。Numpy的數據容器可用來存儲多種類型數據,這使得Numpy可以快速并且無縫整合各種類型數據。Numpy本身并沒有提供很多高級的數據分析功能,理解Numpy數組及數組計算有助于更加高效地使用諸如pandas等數據處理工具。
1掌握Numpy數組對象ndarray
ndarray(數組)是存儲單一數據類型的多維數組。
1.1創建數組
1.1.1numpy.array()創建數組
numpy.array(object, dtype=None, copy=True, order='K',subok=False, ndmin=0)
import numpy as np#一維數組 arr1 = np.array([1, 2, 3, 4]) arr1#二維數組 arr2 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) arr2數組屬性:
arr2.shape #數組形狀 arr2.ndim #數組維度 arr2.size #數組個數 arr2.dtype #元素類型1.1.2arange、linspace創建數組(等差數組)
numpy.arange([start, ]stop, [step, ]dtype=None)
參數說明:
(1)start:可忽略不寫,默認從0開始;起始值;
(2)stop:結束值;生成的元素不包括結束值;
(3)step:可忽略不寫,默認步長為1;步長;
(4)dtype:默認為None,設置顯示元素的數據類型。
------------------
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
參數說明:
1.1.3logspace創建數組(等比數列)
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
參數說明:
- start:代表間隔的起始值。
- stop:代表以區間為基礎的間隔的停止值。
- num:默認是50個樣本點(數據),為正整數。
- endpoint:默認為True,如果改為Fasle取不到右端點。
- base:代表日志空間的底數,默認是以10為底。
- dtype:可以設置數值類型。
1.1.4特殊數組
(1)numpy.zeros(shape, dtype=float, order='C'):返回來一個給定形狀和類型的用0填充的數組。
參數說明:
(2)numpy.eye(N, M=None, k=0, dtype=, order=‘C’):返回一個二維數組,其對角線元素為1,其余位置元素為0。
參數說明:
(3)numpy.diag(v,k=0):以一維數組的形式返回方陣的對角線(或非對角線)元素,或將一維數組轉換成方陣(非對角線元素為0).兩種功能角色轉變取決于輸入的v。
參數說明:
(4)numpy.ones(shape, dtype=None, order='C')
1.2數組數據類型
#----整型轉變為浮點型 arr1 = np.array([1, 2, 3], dtype='int') arr1.dtype arr1 = np.float64(arr1) arr1.dtype#----浮點型轉變為整型 arr1 = np.array([1, 2, 3], dtype='float32') arr1.dtype arr1 = np.int64(arr1) arr1.dtype1.3生成隨機數
#無約束條件下生成隨機數 np.random.random(size=(4,3)) #生成服從正態分布的隨機數 np.random.randn(3, 4) #生成給定上下范圍的隨機數 np.random.randint(1, 5, size=(2,3)) #最小值不低于1,最大值不高于5,生成2行3列數組1.4通過索引訪問數組
1.4.1一維數組索引
arr1 = np.arange(10) arr1[-1] arr1[2:4] arr1[2:8:2] arr1[2:4] = 3,51.4.2多維數組的索引
arr2 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) arr2[1,1:3] arr2[1,(1,2)] arr2[2, :] arr2[0::2, :]1.5變換數組的形狀
1.5.1轉換為數組形狀
arr1 = np.arange(12) #一維數組 arr1.ndim #一維的#第一種:使用shape屬性 arr1.shape = 3,4 arr1 arr1.shape #(3, 4)#第二種:reshape方法 arr1 = arr1.reshape(2, 6) #需要賦值給原始數據才能生效 arr1 arr1.shape #(2, 6)1.5.2展平數組
arr1.ravel() #橫向展平 arr1.flatten() #橫向展平 arr1.flatten('F') #縱向展平1.5.3組合數組
arr1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) arr2 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) np.hstack((arr1, arr2)) #橫向組合 np.vstack((arr1, arr2)) #縱向組合 np.concatenate((arr1, arr2), axis=1) #橫向組合 np.concatenate((arr1, arr2), axis=0) #縱向組合1.5.4切割數據
np.hsplit(arr1, 2) #橫向分割 np.vsplit(arr1, 3) #縱向分割 np.split(arr1, 2, axis=1) #橫向分割 np.split(arr1, 3, axis=0) #縱向分割2掌握Numpy矩陣與通用函數
2.1創建矩陣
matr1 = np.mat("1 2 3;4 5 6;7 8 9") matr2 = np.matrix([[1, 2, 3],[4, 5, 6],[2, 2, 3]])arr1 = np.array([[1, 2, 3],[4, 5, 6]]) arr2 = np.array([[1, 3, 4],[7, 5, 9]]) np.bmat("arr1 arr2;arr2 arr1")2.2矩陣的運算
2.2.1加減乘除
matr1 + matr2 matr1 - matr2 matr1 * matr2 #矩陣意義上的相乘 np.multiply(matr1, matr2) #對應位置元素的相乘 matr1 * 22.2.2特有屬性
matr1.T #自身的轉置mat = np.matrix([[1, 1],[-1, 1]]) mat.I #自身的逆矩陣3練習
創建一個8?8的全零數組,并把1,3,5,7行和2,4,6列的元素設置為1。之后將數組的形狀轉變為4?16。
a = np.zeros((8, 8)) a[1::2 , 2::2] = 1 #a.shape = 4,16 a = a.reshape(4, 16) #賦值回原始數據才會生效?
總結
以上是生活随笔為你收集整理的Python—实训day7上—Nmupy数值计算基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 钱与命的八句真实话(图)
- 下一篇: 推荐16款最棒的Visual Studi