이 글은 주로 Python 행렬의 일반적인 연산을 소개하며, Python 행렬의 생성과 곱셈, 역산, 전치 및 기타 관련 연산의 구현 방법을 예제 형식으로 요약하고 분석합니다.
이 문서의 예제에서는 Python의 일반적인 행렬 연산을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
Python의 numpy 라이브러리는 행렬 연산을 제공하므로 행렬 연산이 필요할 때 numpy 패키지를 가져와야 합니다.
1. numpy 가져오기 및 사용
from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。
1차원 또는 2차원 데이터에서 행렬 만들기
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);매트릭스 도트 product
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));//按行合并,即行数不变,扩展列数
IV. 행렬, 목록 및 배열의 변환
목록은 수정될 수 있으며 목록의 요소는 다른 유형의 데이터일 수 있습니다.
l1=[[1],'hello',3];
Arrays in 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();//将数组转换成列表
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!