numpy 矩阵运算

8.2 矩阵(Matrix)对象

Matrix类型继承于ndarray类型,因此含有ndarray的所有数据属性和方法。Matrix类型与ndarray类型有六个重要的不同点,当你当Matrix对象当arrays操作时,这些不同点会导致非预期的结果。

1)Matrix对象可以使用一个Matlab风格的字符串来创建,也就是一个以空格分隔列,以分号分隔行的字符串。

2)Matrix对象总是二维的。这包含有深远的影响,比如m.ravel()的返回值是二维的,成员选择的返回值也是二维的,因此序列的行为与array会有本质的不同。

3)Matrix类型的乘法覆盖了array的乘法,使用的是矩阵的乘法运算。当你接收矩阵的返回值的时候,确保你已经理解这些函数的含义。特别地,事实上函数asanyarray(m)会返回一个matrix,如果m是一个matrix。

4)Matrix类型的幂运算也覆盖了之前的幂运算,使用矩阵的幂。根据这个事实,再提醒一下,如果使用一个矩阵的幂作为参数调用asanarray(...)跟上面的相同。

5)矩阵默认的__array_priority__是10.0,因而ndarray和matrix对象混合的运算总是返回矩阵。

6)矩阵有几个特有的属性使得计算更加容易,这些属性有:

(a) .T -- 返回自身的转置

(b) .H -- 返回自身的共轭转置

(c) .I -- 返回自身的逆矩阵

(d) .A -- 返回自身数据的2维数组的一个视图(没有做任何的拷贝)

Matrix类 是ndarray的一个Python子类,你也可以学习这个实现来构造自己的ndarray子类。Matrix对象也可以使用其它的Matrix对象,字 符串,或者其它的可以转换为一个ndarray的参数来构造。另外,在NumPy里,“mat”是“matrix”的一个别名。

例1: 使用字符串构造矩阵


>>> from numpy import *

>>> a=mat(‘1 2 3; 4 5 3‘)

>>> print (a*a.T).I

[[ 0.29239766 -0.13450292]

[-0.13450292  0.08187135]]

例2: 使用嵌套序列构造矩阵


>>> mat( [ [1,5,10],[1.0,3,4j] ])

matrix([[  1.+0.j,   5.+0.j,  10.+0.j],

[  1.+0.j,   3.+0.j,   0.+4.j]])

例3: 使用一个数组构造矩阵


>>> mat( random.rand(3,3) ).T

matrix([[ 0.81541602,  0.73987459,  0.03509142],

[ 0.14767449,  0.60539483,  0.05641679],

[ 0.43257759,  0.628695  ,  0.47413553]])

Matrix( data, dtype=None, copy=True )

将 以参数data传进来的数据转换为矩阵。如果dtype是None,那么数据类型将由data的内容来决定。如果copy为True,则会拷贝data中 的数据,否则会使用原来的数据缓冲。如果没有找到数据的缓冲区,当然也会进行数据的拷贝。注意:矩阵matrix事实上是一个类型,因此当你构造实例的时 候会调用matrix.__new__(matrix, data, dtype, copy)。

Mat

只是matrix的一个别名。

Asmatrix(data, dtype=None)

返回不经过复制的数据。等价于matrix(data, dtype, copy=False)。

Bmat(obj, ldict=None, gdict=None)

使用一个字符串,嵌套的序列或者一个数组(array)构造一个矩阵。这个命令允许你从其它的对象来建立起矩阵。其中当obj是一个字符串的时候才会使用参数ldict和gdict,这两个参数是局部和模块的字典。如果你没有提供它们,这些将由系统提供。

>>> A=mat(‘2 2; 2 2‘); B=mat(‘1 1; 1 1‘);

>>> print bmat(‘A B; B A‘)

[[2 2 1 1]

[2 2 1 1]

[1 1 2 2]

[1 1 2 2]]

时间: 2024-12-18 16:14:37

numpy 矩阵运算的相关文章

python 科学计算库NumPy—矩阵运算

NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而少用matrix来表示矩阵. 然后即可使用相关的矩阵运算了 import numpy as np a = [[1,2,3],[4,5,5],[4,5,5]] len = a.shape[0] #多维数组的行数 print(a.dtype) #输出元素类型 #另外也还可以使用切片方式来处理数组 然后是

理解数学公式与numpy矩阵运算

1.矩阵的初始化 (1)创建一个 3*5的全0矩阵和全1矩阵 import numpy as np myzero = np.zeros([3,5]) print myzero myones = np.ones([3,5]) print myones (2)生成随机矩阵 myrand = np.random.rand(3,4) print myrand (3)单位阵 myeye = np.eye(3) print myeye 2. 矩阵的元素运算 矩阵的元素运算是指矩阵在元素级别的加.减.乘.除运

[ML]从最简单的撸起-python实现线性拟合数据

注明:本文并非教程,仅作为记录本人的日常学习历程而存在. 目标:实现将图中的大量红色X状标记拟合为图中所示的一条蓝色直线 基本思想:吴恩达的coursera机器学习课程变量线性回归章节:递度下降法 实现: 1.引入相关库:这里用到了python的科学计算库numpy和绘图库matplotlib import numpy as np import matplotlib.pyplot as plt 2.虚拟生成数据:因为入门,暂时找不到现成的数据可以使用,故使用numpy的随机函数生成所需要的数据

《机器学习算法原理与编程实践》学习笔记(二)

(上接第一章) 1.2 对象.矩阵与矢量化编程 1.2.1对象与维度(略) 1.2.2初识矩阵(略) 1.2.3矢量化编程与GPU运算(略) 1.2.4理解数学公式与NumPy矩阵运算 1.矩阵的初始化 #coding:utf-8 import numpy as np #导入NumPy包 #创建3*5的全0矩阵和全1的矩阵 myZero = np.zeros([3,5])#3*5的全0矩阵 print myZero myZero = np.ones([3,5])##3*5的全1矩阵 print

centos下安装python2.7.9和pip1.5.5

以前一直用ubantu下的python,ubantu比较卡.自己倾向于使用centos,但默认的python版本太低,所以重新装了一个python和ipython centos6.5安装python2.7.9 第一步:安装devtoolset [[email protected] ~]# yum groupinstall "Development tools" 第二步:安装编译python所需要的包 [[email protected] ~]# yum install zlib-dev

Python知识(6)--numpy做矩阵运算

矩阵运算 论numpy中matrix 和 array的区别:http://blog.csdn.net/vincentlipan/article/details/20717163 matrix 和 array的差别: Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array.所以matrix 拥有array的所有特性. 1.基本运算 import nump

numpy数组、向量、矩阵运算

可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/numpy%E6%95%B0%E7%BB%84%E3%80%81%E5%90%91%E9%87%8F%E3%80%81%E7%9F%A9%E9%98%B5%E8%BF%90%E7%AE%97.md import numpy as np import pandas as pd

02. 导数与梯度、矩阵运算性质、科学计算库numpy

一.数学基础 二.numpy 一.数学基础 关键字:求导.偏导.梯度.复合函数求导链式法则 矩阵的转置.矩阵加减.矩阵乘法[矩阵乘法不满足交换律] 二.numpy #coding:utf-8 import numpy as np print np.__version__ # 1- create narray array = np.array([1,2,3],dtype=np.uint8) print "array:",array # 2- zeros mat1 = np.zeros((

Numpy系列(十二)- 矩阵运算

numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matrix(data,dtype,copy):返回一个矩阵,其中data为ndarray对象或者字符形式:dtype:为data的type:copy:为bool类型. >>> a = np.matrix('1 2 7; 3 4 8; 5 6 9') >>> a #矩阵的换行必须是