numpy的导入和使用: from numpy import *;

矩阵Mat的创建

1、由一维或二维数据创建矩阵

a1=array([1,2,3]);
a1=mat(a1);

由列表list创建矩阵

list=[1,2,3]
mat(list)
》》matrix([[1, 2, 3]])

2、创建常见的矩阵

data1=mat(zeros((3,3)));
#创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)
data2=mat(ones((2,4)));
#创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=intdata3=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之间的随机整数矩阵,如果需要指定下界则可以多加一个参数

3、矩阵运算

矩阵相乘:

a1=mat([1,2]);
a2=mat([[1],[2]]);
a3=a1*a2;  #1*2的矩阵乘以2*1的矩阵,得到1*1的矩阵
np.matmul(a, b) #方法二
np.dot(a, b)     #方法三

矩阵点乘——矩阵对应元素相乘

a1=mat([1,1]);a2=mat([2,2]);a3=multiply(a1,a2);

矩阵转置

a2=a.T;
np.transpose(a)   #方法二

矩阵求和

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,:]);//计算第二行中最大值对应在该行的索引

矩阵分割

a=mat(ones((3,3)));
b=a[1:,1:];//分割出第二行以后的行和第二列以后的列的所有元素

矩阵的合并(适用于array)

a=mat(ones((2,2)));
b=mat(eye(2));
c=vstack((a,b));//按列合并,即增加行数
d=hstack((a,b));//按行合并,即扩展列数

行列数

m,n=a.shape;
m=a.shape[0];#行数
n=a.shape[1];#列数

排序

m=np.mat([[2,5,1],[4,6,2]])    #创建2行3列矩阵
>>> m
matrix([[2, 5, 1],[4, 6, 2]])
>>> m.sort()                    #对每一行进行排序
>>> m
matrix([[1, 2, 5],[2, 4, 6]])

4、mat转list,array

tolist

tolist函数用于把一个矩阵转化成为list列表>>x=np.mat([[1,2,3],[4,5,6]])
>>print(x)
>>matrix([[1,2,3],[4,,5,6]])
>>type(x)
>>matrix>>x.tolist()
>>[[1,2,3],[4,5,6]]

getA()或mat.A ,matrix矩阵名.A 代表将矩阵转化为array数组类型

getA()函数是numpy.matrix下的一个函数,用作把矩阵转换成数组array,等价于np.asarray(self).>>> x = np.matrix(np.arange(12).reshape((3,4)));
matrix([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])
>>> x.getA()
array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])>>> b=x.A
b=array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])

from:https://blog.csdn.net/qq_30638831/article/details/79907684

数组array的创建

1、使用numpy.array方法将tuplelistarray, 或者其他的序列模式的数据转创建为 ndarray, 默认创建一个新的 ndarray

>>> np.array([1,2,3,4])
[1 2 3 4]>>> b = array( [ (1.5,2,3), (4,5,6)  ]  )  
array([[ 1.5,  2. ,  3. ],  [ 4. ,  5. ,  6. ]])  >>> c = array( [ [1,2], [3,4] ], dtype=complex)
#指定数组中元素的类型
>>> c  array([[ 1.+0.j,  2.+0.j],  [ 3.+0.j,  4.+0.j]]) 

2、生成均匀分布的array: 
arange(最小值,最大值,步长)(左闭右开) : 创建等差数列 
linspace(最小值,最大值,元素数量)

>>> np.arange(15)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]>>> np.arange(15).reshape(3,5)
[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14]]>>> np.arange( 0, 2, 0.3 )
array([ 0. ,  0.3,  0.6,  0.9,  1.2,  1.5,  1.8])>>> np.linspace(1,3,9)
[ 1.    1.25  1.5   1.75  2.    2.25  2.5   2.75  3.  ]

3、生成特殊数组 
np.ones: 创建一个数组, 其中的元素全为 1 
np.zeros: 创建元素全为 0 的数组, 类似 np.ones 
np.empty创建一个内容随机并且依赖与内存状态的数组。 
np.eye: 创建一个对角线为 1 其他为 0 的矩阵. 
np.identity: 创建一个主对角线为 1 其他为 0 的方阵.

4、获取数组的属性

>>> a = np.zeros((2,2,2))
>>> a.ndim   #数组的维数
3
>>> a.shape  #数组每一维的大小
(2, 2, 2)
>>> a.size   #数组全部元素的数量
8
>>> a.dtype  #数组中元素的类型
float64
>>> print a.itemsize  #每个元素所占的字节数
8

5、数组运算(注意array乘法与mat不同)

print a
[[ 1.  1.][ 1.  1.]]
>>> print b
[[ 1.  0.][ 0.  1.]]>>> print a > 2
[[False False][False False]]
>>> print a+b             #数组加,对应位置相加
[[ 2.  1.][ 1.  2.]]
>>> print a-b             #数组减,对应位置相减
[[ 0.  1.][ 1.  0.]]
>>> print b*2             #数组与数值相乘,对应位置乘
[[ 2.  0.][ 0.  2.]]>>> print (a*2)*(b*2)     #数组与数组相乘,按位置一对一相乘
[[ 4.  0.][ 0.  4.]]
>>> print b/(a*2)          #数组与数组相除,按位置一对一相除
[[ 0.5  0. ][ 0.   0.5]]>>> print a.dot(b)                    # matrix product,矩阵乘
>>> np.dot(a,a)                       #矩阵乘法
array([[ 2.,  2.],[ 2.,  2.]])>>> print (a*2)**4
[[ 16.  16.][ 16.  16.]]>>> b = a              #浅拷贝
>>> b is a
True
>>> c = a.copy()       #深拷贝
>>> c is a
False

from:https://blog.csdn.net/github_36669230/article/details/78038756

1. mat()函数与array()函数生成矩阵所需的数据格式有区别

(1) mat()函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割。而array()函数中数据只能为后者形式。

如mat()函数生成矩阵时一下两种方式都正确。

   和     

(2) 而array()函数生成矩阵时数据只能为列表形式。

2. mat()函数与array()函数生成的矩阵计算方式不同

(1) mat()函数中矩阵的乘积可以使用(星号) *  或 .dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。

(2) array()函数中矩阵的乘积只能使用 .dot()函数。而星号乘 (*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。

numpy库中的mat和array使用小结相关推荐

  1. python中mean的用法_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  2. python 的numpy库中的mean()函数用法介绍

    这篇文章主要介绍了python 的numpy库中的mean()函数用法介绍,具有很好对参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 mean() 函数定义: 2 mean()函数功能: 求取均 ...

  3. python average函数怎么用_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  4. numpy库中ndarray切片操作的参数意义

    ndarray切片操作的规则总结出来叫做"三帽号规则" 三帽号规则即:[开始索引:结尾索引:步长],并且切片区间是左闭右开的,即"开始索引:结尾索引"表示的区间 ...

  5. Python:numpy库中的一些函数简介、使用方法之详细攻略

    Python:numpy库中的一些函数简介.使用方法之详细攻略 目录 numpy库中的一些函数简介.使用方法 1.np.concatenate() 1.1.函数案例 1.2.函数用法 numpy库中的 ...

  6. Py之Numpy:Numpy库中常用函数的简介、应用之详细攻略

    Py之Numpy:Numpy库中常用函数的简介.应用之详细攻略 目录 Numpy库中常用函数的简介.应用 1.X, Y = np.meshgrid(X, Y) 相关文章 Py之Numpy:Numpy库 ...

  7. python numpy库中省略号...的一些用法

    在学习<Designing Machine Learning Systems with Python>(<机器学习系统设计Python语言实现>)一书的第五章梯度下降一节代码中 ...

  8. Python:Numpy库中的invert()函数的用法

    Numpy库中的invert()函数的用法 官方解释: Compute bit-wise inversion, or bit-wise NOT, element-wise. Computes the ...

  9. [转载] Python里面numpy库中zeros()的一些问题

    参考链接: Python中的numpy.zeros Python里面numpy库中zeros函数的一些问题 定义 本文记录了在使用numpy库中的zeros函数时遇到的一些问题 定义 用法:zeros ...

最新文章

  1. 区块链时代的拜占庭容错:Tendermint(四)
  2. 安卓开发面试书籍,每个程序员都必须掌握的8种数据结构!面试必会
  3. c语言 软件中断 gcc,不同编译器中断函数的表示方法
  4. myeclipse自带tomcat
  5. 评价——秩和比综合评价
  6. 从哪里寻找游戏工具集(Game dev toolset)开发的资料?
  7. PHP设置表格框线,ppt中表格边框线条怎样设置?
  8. 更换win10计算机账户,win10更换账户的方法是什么_win10换账号登录的方法
  9. 不做“OUTMAN”!笔记本热门词汇盘点
  10. jQuery.siblings() 函数详解
  11. Excel日期显示为数字,不能正常显示为日期
  12. webp文件_什么是WebP文件(以及如何打开一个文件)?
  13. 数据移动指令-----mov,lea,xchg
  14. HTTP服务(超文本传输协议)
  15. Qt中Label标签的使用
  16. 按照jdk后cmd输入java -version命令查询jdk版本号无结果
  17. GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理
  18. 自考免考计算机应用基础申请流程,自考免考课程申请过程
  19. python人工智能项目实战-Python人工智能项目实战
  20. linux 优化脚本 关闭服务器,linux服务器一键优化脚本

热门文章

  1. 电脑文件里哪里能用计算机,电脑里的哪些无用文件是可以放心删除的?
  2. 最详细的Fast RCNN论文笔记
  3. matlab 波前像差,波前像差原理及应用
  4. avue里面的select怎么设置默认值_mysql大量的waiting for table level lock怎么办
  5. fossid安装教程_Win10环境下6sV2.1模型编译
  6. -组件基础-局部组件 // 局部组件的简写
  7. 剑指offer python版 数组中只出现一次的两个数字
  8. 2015.09.05 C++中类的static与const成员
  9. CentOS修改网络配置
  10. easyui的datagrid和panel如何让标题动态改变?