np.array和np.matrix的差别

np.array([1,2,3])这种不是矩阵!

import numpy as np
a = np.array([1,2,3])
a
    array([1, 2, 3])
a.shape #a不是矩阵, 因为a.T.shape仍然是(3,)
    (3,)
b = a.reshape(1,3) #把a转化为矩阵
b
    array([[1, 2, 3]])
b.shape
    (1, 3)
a@a
    14
b@b.T
    array([[14]])
b.T@b
    array([[1, 2, 3],
           [2, 4, 6],
           [3, 6, 9]])
a.T
    array([1, 2, 3])
c = np.mat([1,2,3]) #相比np.array(), np.mat()得到的直接是矩阵
c.shape
    (1, 3)

差异罗列

  1. 上面所说的 np.array([1,2,3])这种不是矩阵np.array([[1,2,3]])或np.mat([1,2,3])才算
    np.array 大多数操作符号都是element-wise的, 除了@可以表示叉乘(python>=3.5) , np.array要表示叉乘需要使用函数np.dot(A, B)
  2. 两者都有 .T 操作以返回转置矩阵, 但是np.mat多了.H(共轭转置)和.I(逆矩阵)
  3. np.array 可以表示超过1~n维的数据, 而np.mat只能用于二维
  4. np.array 取第一列A[:, 0] 返回的不是矩阵, shape是没有列的维度的(例如(3,) 而不是(3,1)), 而np.mat则是列向量形式的矩阵(符合预期)
  5. 两者可以互相用np.asmatrix()或np.asarray()互相转换

Reference:
[1] https://stackoverflow.com/questions/4151128/what-are-the-differences-between-numpy-arrays-and-matrices-which-one-should-i-u

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值