Numpy中的array和martrix的区别

Numpy中的array和martrix的区别

1.维数

Numpy matrix必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。

2.乘法符号

  • 在numpy中matrix的乘法符号:a*b,就是矩阵积。
  • 在numpy里面arrays遵从逐个元素的运算,所以array:c*d运算相当于对应位置相乘。而矩阵相乘,则需要numpy里面的dot命令 。
a = matrix([[1,0,],[0,1]])
b = matrix([[1, 2], [3,4]])
print(a*b)
#运行结果:矩阵相乘
# [[1 2]
#  [3 4]]
c = array([[1,0,],[0,1]])
d = array([[1, 2], [3,4]])
print(c*d)
#运行结果:对应位置相乘
# [[1 0]
#  [0 4]]
print(c.dot(d))
#运行结果:矩阵相乘
# [[1 2]
#  [3 4]]

3.特殊矩阵的转换

matrix 和 array 都可以通过objects后面加.T.T.T 得到其转置。但是 matrix objects 还可以在后面加.H.H.H 得到共轭矩阵, 加 .I.I.I 得到逆矩阵。

4.运算符

运算符的作用也不一样 :因为a是个matrix,所以a ** 2返回的是a*a,相当于矩阵相乘。而c是array,c**2相当于,c中的元素逐个求平方。

e =matrix([[1,2],[3,4]])
f =array([[1,2],[3,4]])
print(e**2)
#运行结果:
# [[ 7 10]
#  [15 22]]
print(f**2)
#运行结果
# [[ 1  4]
#  [ 9 16]]

5.矩阵和数组之间的转换

当然你可以通过下面的两条命令轻松的实现两者之间的转换:np.asmatrix和np.asarray

>>> from numpy import *
>>> a = matrix([[1,0,],[0,1]])
>>> a
matrix([[1, 0],
        [0, 1]])
>>> b= asarray(a)
>>> b
array([[1, 0],
       [0, 1]])
>>> c =asmatrix(b)
>>> c
matrix([[1, 0],
        [0, 1]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值