大家好,我是IT共享者 , 人稱皮皮 。今天給大家介紹矩陣和NumPy數(shù)組 。
一、什么是矩陣?使用嵌套列表和NumPy包的Python矩陣 。矩陣是一種二維數(shù)據(jù)結(jié)構(gòu),其中數(shù)字按行和列排列 。
二、Python矩陣1. 列表視為矩陣Python沒有矩陣的內(nèi)置類型 。但是,可以將列表的列表視為矩陣 。
例:
A = [[1, 4, 5],[-5, 8, 9]]可以將此列表的列表視為具有2行3列的矩陣 。
如圖:

文章插圖
2. 如何使用嵌套列表 。
A = [[1, 4, 5, 12],[-5, 8, 9, 0],[-6, 7, 11, 19]]print("A =", A) print("A[1] =", A[1])# 第二行print("A[1][2] =", A[1][2])# 第二行的第三元素print("A[0][-1] =", A[0][-1])# 第一行的最后一個元素column = [];# 空 listfor row in A:column.append(row[2])print("3rd column =", column)當運行程序時,輸出為:
文章插圖
三、NumPy數(shù)組1. 什么是NumPy?NumPy是用于科學計算的軟件包,它支持強大的N維數(shù)組對象 。
在使用NumPy之前,需要先安裝它 。
2. 如何安裝NumPy?如果使用Windows,使用PyCharm 安裝NumPy,NumPy它帶有一些其他與數(shù)據(jù)科學和機器學習有關(guān)的軟件包 。
成功安裝了NumPy,就可以導入和使用它 。

文章插圖
NumPy提供數(shù)字的多維數(shù)組(實際上是一個對象) 。
例 :
import numpy as npa = np.array([1, 2, 3])print(a)# 輸出: [1, 2, 3]print(type(a))# 輸出: <class 'numpy.ndarray'>NumPy的數(shù)組類稱為ndarray 。采集失敗,請手動處理https://p3-sign.toutiaoimg.com/pgc-image/09d56072610742e6be4745ee3e2259fe~tplv-tt-origin-asy2:5aS05p2hQFB5dGhvbui_m-mYtuWtpuS5oOS6pOa1gQ==.image?_iz=58558&from=article.pc_detail&x-expires=1698369411&x-signature=yLx0LaEAGRB5r3Z5Hxu%2Bv5RZ9Oc%3D
注:
NumPy的數(shù)組類稱為ndarray 。
3. 如何創(chuàng)建一個NumPy數(shù)組?有幾種創(chuàng)建NumPy數(shù)組的方法 。
3.1 整數(shù),浮點數(shù)和復(fù)數(shù)的數(shù)組
import numpy as npA = np.array([[1, 2, 3], [3, 4, 5]])print(A)A = np.array([[1.1, 2, 3], [3, 4, 5]]) # 浮點數(shù)組print(A)A = np.array([[1, 2, 3], [3, 4, 5]], dtype = complex) # 復(fù)數(shù)數(shù)組print(A)運行效果:
文章插圖
3.2 零和一的數(shù)組
import numpy as npzeors_array = np.zeros( (2, 3) )print(zeors_array)ones_array = np.ones( (1, 5), dtype=np.int32 ) // dtypeprint(ones_array)# 輸出: [[1 1 1 1 1]]
文章插圖
在這里 , 指定dtype了32位(4字節(jié)) 。因此 , 該數(shù)組可以采用從到的值 。-2-312-31-1
3.使用arange()和shape()
import numpy as npA = np.arange(4)print('A =', A)B = np.arange(12).reshape(2, 6)print('B =', B)采集失敗,請手動處理https://p3-sign.toutiaoimg.com/pgc-image/41e36b487fc54282a47332fdedc43a6a~tplv-tt-origin-asy2:5aS05p2hQFB5dGhvbui_m-mYtuWtpuS5oOS6pOa1gQ==.image?_iz=58558&from=article.pc_detail&x-expires=1698369411&x-signature=bhcPG%2Fenh3syXbj8jWw3CREhgA0%3D四、矩陣運算兩個矩陣相加,兩個矩陣相乘以及一個矩陣轉(zhuǎn)置 。在編寫這些程序之前,使用了嵌套列表 。讓看看如何使用NumPy數(shù)組完成相同的任務(wù) 。
兩種矩陣的加法
使用+運算符將兩個NumPy矩陣的對應(yīng)元素相加 。
import numpy as npA = np.array([[2, 4], [5, -6]])B = np.array([[9, -3], [3, 6]])C = A + B# 元素聰明的加法print(C)
文章插圖
兩個矩陣相乘
為了將兩個矩陣相乘,使用dot()方法 。
注意:用于數(shù)組乘法(兩個數(shù)組的對應(yīng)元素的乘法),而不是矩陣乘法 。
import numpy as npA = np.array([[3, 6, 7], [5, -3, 0]])B = np.array([[1, 1], [2, 1], [3, -3]])C = A.dot(B)print(C)
文章插圖
矩陣轉(zhuǎn)置
使用numpy.transpose計算矩陣的轉(zhuǎn)置 。
import numpy as npA = np.array([[1, 1], [2, 1], [3, -3]])print(A.transpose())采集失敗,請手動處理https://p26-sign.toutiaoimg.com/pgc-image/5308ca6888b54a43af37451348c5c0f6~tplv-tt-origin-asy2:5aS05p2hQFB5dGhvbui_m-mYtuWtpuS5oOS6pOa1gQ==.image?_iz=58558&from=article.pc_detail&x-expires=1698369411&x-signature=YVRMIgVtepMnK5ucxRPa%2F8Sb3D8%3D注:
NumPy使的任務(wù)更加輕松 。
五、案例1. 訪問矩陣元素與列表類似,可以使用索引訪問矩陣元素 。讓從一維NumPy數(shù)組開始 。
import numpy as npA = np.array([2, 4, 6, 8, 10])print("A[0] =", A[0])# First elementprint("A[2] =", A[2])# Third element print("A[-1] =", A[-1])# Last element運行該程序時 , 輸出為:
文章插圖
現(xiàn)在,讓看看如何訪問二維數(shù)組(基本上是矩陣)的元素 。
import numpy as npA = np.array([[1, 4, 5, 12],[-5, 8, 9, 0],[-6, 7, 11, 19]])#First element of first rowprint("A[0][0] =", A[0][0])# Third element of second rowprint("A[1][2] =", A[1][2])# Last element of last rowprint("A[-1][-1] =", A[-1][-1])當運行程序時,輸出將是:采集失敗,請手動處理https://p3-sign.toutiaoimg.com/pgc-image/115fac88457b451e97827b58bd0e75b6~tplv-tt-origin-asy2:5aS05p2hQFB5dGhvbui_m-mYtuWtpuS5oOS6pOa1gQ==.image?_iz=58558&from=article.pc_detail&x-expires=1698369411&x-signature=tTKO%2BV5Z0PTv0UmCwM7ZEPLpqvg%3D
2. 訪問矩陣的行
import numpy as npA = np.array([[1, 4, 5, 12],[-5, 8, 9, 0],[-6, 7, 11, 19]])print("A[0] =", A[0]) # First Rowprint("A[2] =", A[2]) # Third Rowprint("A[-1] =", A[-1]) # Last Row (3rd row in this case)當運行程序時,輸出將是:
文章插圖
3. 訪問矩陣的列
import numpy as npA = np.array([[1, 4, 5, 12],[-5, 8, 9, 0],[-6, 7, 11, 19]])print("A[:,0] =",A[:,0]) # First Columnprint("A[:,3] =", A[:,3]) # Fourth Columnprint("A[:,-1] =", A[:,-1]) # Last Column (4th column in this case)當運行程序時,輸出將是:采集失敗,請手動處理https://p3-sign.toutiaoimg.com/pgc-image/64eeee937a2c49adbbbfc6434c670d58~tplv-tt-origin-asy2:5aS05p2hQFB5dGhvbui_m-mYtuWtpuS5oOS6pOa1gQ==.image?_iz=58558&from=article.pc_detail&x-expires=1698369411&x-signature=puO%2BTBZ4KcLLQXsX%2BU%2Fs%2BF9XQz0%3D
注:
【numpy求某一列的和的算法 numpy矩陣平素求和】使用NumPy(而不是嵌套列表)可以更輕松地處理矩陣 , 而且甚至都沒有涉及基礎(chǔ)知識 。建議詳細研究NumPy軟件包,尤其是當嘗試將Python用于數(shù)據(jù)科學/分析時 。
六、總結(jié)本文基于Python基礎(chǔ),介紹了矩陣和NumPy數(shù)組,重點介紹了NumPy數(shù)組,如何去安裝NumPy模塊,如何去創(chuàng)建一個NumPy數(shù)組的兩種方式 。
通過案例的分析,代碼的演示,運行效果圖的展示,使用Python語言,能夠讓讀者更好的理解 。
讀者可以根據(jù)文章內(nèi)容,自己實現(xiàn) 。有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻 。
代碼很簡單,希望對你學習有幫助 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 如何在Excel表格中快速全選一行或一列
- 如何在Excel中移動表格一行或一列
- Excel中如何快速在同一列中添加相同內(nèi)容
- Excel如何讓第一列一直顯示
- Excel實用技巧:如何將一列數(shù)據(jù)拆分成多列
- 如何在Windows 10中使用MySQL將一列值轉(zhuǎn)換為該列的最大值
- Excel中如何快速將多列數(shù)據(jù)轉(zhuǎn)換為一列
- Excel如何快速統(tǒng)計一列中相同數(shù)據(jù)出現(xiàn)的次數(shù)
- 今天語音搜索了嗎?如何在Excel表格中右側(cè)增加一列
- 無需公式 如何在Excel中快速拆分一列數(shù)據(jù)為多列數(shù)據(jù)【推薦】
