這篇文章主要介紹了Python矩陣常見運算運算,結合實例形式總結分析了Python矩陣的創建以及相乘、求逆、轉置等相關操作實現方法,需要的朋友可以參考下
本文實例講述了Python矩陣常見運算操作。分享給大家供大家參考,具體如下:
python的numpy庫提供矩陣運算的功能,因此我們在需要矩陣運算的時候,需要導入numpy的包。
一.numpy的導入與使用
from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。
#二.矩陣的創建
由一維或二維資料建立矩陣
from numpy import *; a1=array([1,2,3]); a1=mat(a1);
建立常見的矩陣
data1=mat(zeros((3,3))); #创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3) data2=mat(ones((2,4))); #创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int data3=mat(random.rand(2,2)); #这里的random模块使用的是numpy中的random模块,random.rand(2,2)创建的是一个二维数组,需要将其转换成#matrix data4=mat(random.randint(10,size=(3,3))); #生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界则可以多加一个参数 data5=mat(random.randint(2,8,size=(2,5)); #产生一个2-8之间的随机整数矩阵 data6=mat(eye(2,2,dtype=int)); #产生一个2*2的对角矩阵 a1=[1,2,3]; a2=mat(diag(a1)); #生成一个对角线为1、2、3的对角矩阵
三.常見的矩陣運算
#1.矩陣相乘
a1=mat([1,2]); a2=mat([[1],[2]]); a3=a1*a2; #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
2.矩陣點乘
矩陣對應元素相乘
a1=mat([1,1]); a2=mat([2,2]); a3=multiply(a1,a2);
矩陣點乘
a1=mat([2,2]); a2=a1*2;
3.矩陣求逆,轉置
##矩陣求逆a1=mat(eye(2,2)*0.5); a2=a1.I; #求矩阵matrix([[0.5,0],[0,0.5]])的逆矩阵矩陣轉置
a1=mat([[1,1],[0,0]]); a2=a1.T;
#4.計算矩陣對應行列的最大、最小值、和。
a1=mat([[1,1],[2,3],[4,2]]);計算每一列、行的和
a2=a1.sum(axis=0);//列和,这里得到的是1*2的矩阵 a3=a1.sum(axis=1);//行和,这里得到的是3*1的矩阵 a4=sum(a1[1,:]);//计算第一行所有列的和,这里得到的是一个数值計算最大、最小值和索引
a1.max();//计算a1矩阵中所有元素的最大值,这里得到的结果是一个数值 a2=max(a1[:,1]);//计算第二列的最大值,这里得到的是一个1*1的矩阵 a1[1,:].max();//计算第二行的最大值,这里得到的是一个一个数值 np.max(a1,0);//计算所有列的最大值,这里使用的是numpy中的max函数 np.max(a1,1);//计算所有行的最大值,这里得到是一个矩阵 np.argmax(a1,0);//计算所有列的最大值对应在该列中的索引 np.argmax(a1[1,:]);//计算第二行中最大值对应在改行的索引
5.矩陣的分隔和合併
#矩陣的分隔,同列表和陣列的分隔一致。a=mat(ones((3,3))); b=a[1:,1:];//分割出第二行以后的行和第二列以后的列的所有元素矩陣的合併
#
a=mat(ones((2,2))); b=mat(eye(2)); c=vstack((a,b));//按列合并,即增加行数 d=hstack((a,b));//按行合并,即行数不变,扩展列数
四.矩陣、列表、陣列的轉換
列表可以修改,並且列表中元素可以使不同類型的數據,如下:l1=[[1],'hello',3];numpy中數組,同一個陣列中所有元素必須為同一個類型,有幾個常見的屬性:
a=array([[2],[1]]); dimension=a.ndim; m,n=a.shape; number=a.size;//元素总个数 str=a.dtype;//元素的类型numpy中的矩陣也有與陣列常見的幾個屬性。 它們之間的轉換:
a1=[[1,2],[3,2],[5,2]];//列表 a2=array(a1);//将列表转换成二维数组 a3=array(a1);//将列表转化成矩阵 a4=array(a3);//将矩阵转换成数组 a5=a3.tolist();//将矩阵转换成列表 a6=a2.tolist();//将数组转换成列表這裡可以發現三者之間的轉換是非常簡單的,這裡需要注意的是,當列表是一維的時候,將它轉換成數組和矩陣後,再透過tolist()轉換成列表是不相同的,需要做一些小小的修改。如下:
a1=[1,2,3]; a2=array(a1); a3=mat(a1); a4=a2.tolist();//这里得到的是[1,2,3] a5=a3.tolist();//这里得到的是[[1,2,3]] a6=(a4 == a5);//a6=False a7=(a4 is a5[0]);//a7=True,a5[0]=[1,2,3]矩陣轉換成數值,存在下列一種情況:
dataMat=mat([1]); val=dataMat[0,0];//这个时候获取的就是矩阵的元素的数值,而不再是矩阵的类型
以上是Python矩陣中常見運算的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。

Python適合快速開發和數據處理,而C 適合高性能和底層控制。 1)Python易用,語法簡潔,適用於數據科學和Web開發。 2)C 性能高,控制精確,常用於遊戲和系統編程。

學習Python所需時間因人而異,主要受之前的編程經驗、學習動機、學習資源和方法及學習節奏的影響。設定現實的學習目標並通過實踐項目學習效果最佳。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器