python的Numpy之矩阵操作
2017-06-16 10:32
465 查看
0.基础知识篇
1.导入numpy包
2.创建矩阵
3.矩阵的基本属性
4.矩阵的基本方法
5.创建默认矩阵
6.矩阵运算
7.创建等差和等比数列矩阵
8.扩展矩阵函数tile()
9.求矩阵最小值,最大值,均值:min,max,mean
10.行列式计算
0.基础知识篇
Numpy的主要操作对象是多维数组。多维数组的维度叫轴(axes),轴的个数叫秩(rank),例如三维数组的秩就是3.
1.导入numpy包
要进行numpy的操作,必须先导入numpy包:
import numpy as np
2.创建矩阵
创建矩阵 一般用到 两种方法: matrix或 array
matrix:
如创建矩阵:
矩阵行之间用分号间隔
[[1 2 3]
[4 5 6]
[1 1 0]]
array:
[[ 1.+0.j 2.+0.j]
[ 3.+0.j 4.+0.j]]
3.矩阵的基本属性(使用与matrix 和 array)
如有矩阵A:
(1)B = A.T #表示矩阵A的转置矩阵为B
(2)B = A.I #表示矩阵A的逆矩阵为B
(3)B = A.H #表示复数矩阵A的共轭矩阵为B
(4)A.ndim #返回数组秩,二维的秩就是2,三维的秩就是3
(5)A.shape #返回矩阵的行列,如 m行n列的矩阵,shape返回就是(m,n),因此 A.shape[0]返回矩阵的行,A.shape[1] 返回矩阵的列
(6)A.dtype #返回矩阵元素类型
(7)A.size #返回矩阵的元素总数目
(8)A.itemsize #返回矩阵中每个元素的大小
4.矩阵的基本方法(使用与 matrix 和 array)
若有矩阵A:
(1)A.getT() #返回本身的转置矩阵
(2)A.getI() #返回本身的逆矩阵
(3)A.getA() #返回自己,但是作为ndarray数组返回。
(4)A.getA1() #返回自己,但是全部变为一维数组返回
(5)A.argsort:返回的是矩阵的值从小到大(或从大到小)的索引值
from numpy import *
A = array([[1,2],[4,3]])
print('矩阵A:')
print(A)
print('从小到大:')
print(argsort(A))
print('从大到小:')
print(argsort(-A))
打印结果:
矩阵A:
[[1 2]
[4 3]]
从小到大:
[[0 1]
[1 0]]
从大到小:
[[1 0]
[0 1]]
以从小到大为例:第一行的 [0,1] 表示最小的为索引值为0的元素,次小的为索引值为1的元素。
5.创建默认矩阵
(1)zeros() :创建全零矩阵,如:A = zeros((3,4)) 表示此全0矩阵是3行4列的
(2)ones() :创建全1矩阵
(3)eye(n,k):创建 n*n的单位矩阵。k为可选值,默认为0.当k=0时,矩阵只有对角线为1,其他都为0。当k>0,如k=1,矩阵的对角线上一行为1,其余为0
from numpy import *
A = eye(3,k=1)
print(A)
打印结果:
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
k<0 则是对角线下一行为1,其余为0
6.矩阵运算
(1)矩阵加减法:若有矩阵a 和 b,则矩阵加减分别为: a+b , a - b
(2)矩阵乘法:c = dot(a,b)
(3)矩阵中每个元素n次方:c = a**n (其中a 为矩阵,n为n次方)
7.创建等差和等比数列矩阵
(1)创建等差数列:linspace
第一个参数为等差数列起始项,第二个参数为等差数列最后一项,第三个参数为一共有多少项
dtype可以不写,默认的是浮点型 float64
(2)创建等比数列:logspace
logspace创建的等比数列的起始项和结束项都是以10为底的。如 logspace(0,3,4)表示起始项为10^0,结束项为10^3,共有4个数
同样可以对 dtype进行设置
8.扩展矩阵函数tile()
tile( matrix,(r,c) ) :表示以矩阵 matrix 为一个单位A,(r,c)表示扩展的矩阵的行列
如有 矩阵A=[ 1,2,3] ,
代码展示:
from numpy import *
A = array([1,2,3])
B = tile(A,(2,1))
print(B)打印结果:
[[1 2 3]
[1 2 3]]
当然 tile中的(r,c)也可以取其他的数,道理是一样的。
9.求矩阵最小值,最大值,均值:min,max,mean
无论是min(),max(),mean(),都有一个重要参数 axis,以一个 m*n矩阵A举例:
当axis 不设置值:返回一个实数,表示矩阵中的 最小值/最大值/平均值
当axis =0:返回每列中的 最小值/最大值/平均值 ,返回一个 1*n 矩阵
当axis = 1:返回每行中的 最小值/最大值/平均值 ,返回一个 m*1矩阵
以 mean()举例:
from numpy import *
A = array([[1,2,3],[7,8,9]])
print(A)
print('.............')
a = A.mean(axis=0)
print('每列的平均值:')
print(a)打印结果:
[[1 2 3]
[7 8 9]]
.............
每列的平均值:
[ 4. 5. 6.]
同样有 axis操作的函数还有求和函数 sum()
10.行列式计算(方法适合于matrix 和 array)
用到 numpy 下的linalg模块的 det 方法:
[0 2 0]
[0 0 2]]
8.0
1.导入numpy包
2.创建矩阵
3.矩阵的基本属性
4.矩阵的基本方法
5.创建默认矩阵
6.矩阵运算
7.创建等差和等比数列矩阵
8.扩展矩阵函数tile()
9.求矩阵最小值,最大值,均值:min,max,mean
10.行列式计算
0.基础知识篇
Numpy的主要操作对象是多维数组。多维数组的维度叫轴(axes),轴的个数叫秩(rank),例如三维数组的秩就是3.
1.导入numpy包
要进行numpy的操作,必须先导入numpy包:
import numpy as np
2.创建矩阵
创建矩阵 一般用到 两种方法: matrix或 array
matrix:
如创建矩阵:
矩阵行之间用分号间隔
import numpy as np a = np.matrix('1 2 3 ;4 5 6 ; 1 1 0 ') print(a)打印结果:
[[1 2 3]
[4 5 6]
[1 1 0]]
array:
from numpy import * c = array( [ [1,2], [3,4] ]) print(c) print(c.dtype)array 后 可跟一个 dtype 参数,用于指定 array 中的内容。默认情况 dtype 为 int32 。dtype还可以设置为 float 和 complex(表示复数)
from numpy import * c = array( [ [1,2], [3,4] ] ,dtype =complex) print(c)打印结果:
[[ 1.+0.j 2.+0.j]
[ 3.+0.j 4.+0.j]]
3.矩阵的基本属性(使用与matrix 和 array)
如有矩阵A:
(1)B = A.T #表示矩阵A的转置矩阵为B
(2)B = A.I #表示矩阵A的逆矩阵为B
(3)B = A.H #表示复数矩阵A的共轭矩阵为B
(4)A.ndim #返回数组秩,二维的秩就是2,三维的秩就是3
(5)A.shape #返回矩阵的行列,如 m行n列的矩阵,shape返回就是(m,n),因此 A.shape[0]返回矩阵的行,A.shape[1] 返回矩阵的列
(6)A.dtype #返回矩阵元素类型
(7)A.size #返回矩阵的元素总数目
(8)A.itemsize #返回矩阵中每个元素的大小
4.矩阵的基本方法(使用与 matrix 和 array)
若有矩阵A:
(1)A.getT() #返回本身的转置矩阵
(2)A.getI() #返回本身的逆矩阵
(3)A.getA() #返回自己,但是作为ndarray数组返回。
(4)A.getA1() #返回自己,但是全部变为一维数组返回
import numpy as np A = np.matrix('1 1 ;2 2') print(A.getA1()) 打印结果:[1 1 2 2]
(5)A.argsort:返回的是矩阵的值从小到大(或从大到小)的索引值
from numpy import *
A = array([[1,2],[4,3]])
print('矩阵A:')
print(A)
print('从小到大:')
print(argsort(A))
print('从大到小:')
print(argsort(-A))
打印结果:
矩阵A:
[[1 2]
[4 3]]
从小到大:
[[0 1]
[1 0]]
从大到小:
[[1 0]
[0 1]]
以从小到大为例:第一行的 [0,1] 表示最小的为索引值为0的元素,次小的为索引值为1的元素。
5.创建默认矩阵
(1)zeros() :创建全零矩阵,如:A = zeros((3,4)) 表示此全0矩阵是3行4列的
(2)ones() :创建全1矩阵
(3)eye(n,k):创建 n*n的单位矩阵。k为可选值,默认为0.当k=0时,矩阵只有对角线为1,其他都为0。当k>0,如k=1,矩阵的对角线上一行为1,其余为0
from numpy import *
A = eye(3,k=1)
print(A)
打印结果:
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
k<0 则是对角线下一行为1,其余为0
6.矩阵运算
(1)矩阵加减法:若有矩阵a 和 b,则矩阵加减分别为: a+b , a - b
(2)矩阵乘法:c = dot(a,b)
(3)矩阵中每个元素n次方:c = a**n (其中a 为矩阵,n为n次方)
7.创建等差和等比数列矩阵
(1)创建等差数列:linspace
from numpy import * x1 = linspace(1,10,10,dtype=int32) print(x1)
第一个参数为等差数列起始项,第二个参数为等差数列最后一项,第三个参数为一共有多少项
dtype可以不写,默认的是浮点型 float64
(2)创建等比数列:logspace
logspace创建的等比数列的起始项和结束项都是以10为底的。如 logspace(0,3,4)表示起始项为10^0,结束项为10^3,共有4个数
from numpy import * x1 = logspace(0,3,4) print(x1)结果:[ 1. 10. 100. 1000.]
同样可以对 dtype进行设置
8.扩展矩阵函数tile()
tile( matrix,(r,c) ) :表示以矩阵 matrix 为一个单位A,(r,c)表示扩展的矩阵的行列
如有 矩阵A=[ 1,2,3] ,
代码展示:
from numpy import *
A = array([1,2,3])
B = tile(A,(2,1))
print(B)打印结果:
[[1 2 3]
[1 2 3]]
当然 tile中的(r,c)也可以取其他的数,道理是一样的。
9.求矩阵最小值,最大值,均值:min,max,mean
无论是min(),max(),mean(),都有一个重要参数 axis,以一个 m*n矩阵A举例:
当axis 不设置值:返回一个实数,表示矩阵中的 最小值/最大值/平均值
当axis =0:返回每列中的 最小值/最大值/平均值 ,返回一个 1*n 矩阵
当axis = 1:返回每行中的 最小值/最大值/平均值 ,返回一个 m*1矩阵
以 mean()举例:
from numpy import *
A = array([[1,2,3],[7,8,9]])
print(A)
print('.............')
a = A.mean(axis=0)
print('每列的平均值:')
print(a)打印结果:
[[1 2 3]
[7 8 9]]
.............
每列的平均值:
[ 4. 5. 6.]
同样有 axis操作的函数还有求和函数 sum()
10.行列式计算(方法适合于matrix 和 array)
用到 numpy 下的linalg模块的 det 方法:
import numpy as np a = np.matrix('2 0 0;0 2 0; 0 0 2') print(a) b = np.linalg.det(a) print(b)[[2 0 0]
[0 2 0]
[0 0 2]]
8.0
相关文章推荐
- Python使用numpy产生正态分布随机数的向量或矩阵操作示例
- python numpy 使用笔记 矩阵操作
- Python numpy(ndarray 随机数组 常用操作 线性方程组和矩阵运算)
- Python-Numpy(3)矩阵基本操作
- Python机器学习:numpy之矩阵操作命令
- Python中矩阵库Numpy基本操作详解
- python之numpy对矩阵的操作
- 【Python】记录四:numpy矩阵操作(持续更新)
- python基础练习(三)—— numpy的矩阵基本操作
- Python中矩阵库Numpy基本操作
- python numpy 矩阵操作
- 【矩阵分解】Python下基于Numpy的四种矩阵基本分解的实现
- Python numpy 矩阵特殊加、乘法与循环优化
- Python 与 Matlab 矩阵操作对应表
- python numpy包的数组与矩阵一些差异
- python numpy包---矩阵运算
- Python 之 Python与MATLAB 矩阵操作总结
- python numpy矩阵信息,shape,size,dtype
- Python numpy生成矩阵、串联矩阵
- python numpy矩阵和数组的转换