matrix.copy() 和 np.copy(matrix) 的差别

  • matrix.copy()np.copy(matrix)二者都可用于复制matrix,但是前者复制后得到的数据格式是matrix,后者得到的是array
from numpy import * #导入numpy的库函数
import numpy as np  #这个方式使用numpy的函数时,需要以np.开头。

a=np.mat('1 2; 3 4')
b = a.copy()
c = np.copy(a)

print(type(a))
print(type(b))
print(type(c))

运行结果:

(由下图可知,两种复制方式得出的数据格式是不同的,下面将进一步介绍这些格式间的差别)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTkQDKjw-1628575456208)(Autonomous_Robots_Kalman_Filter.assets/image-20210810124124461.png)]

matrix和array的具体差别

1、matrix是矩阵、array是数组。
2、matrix必须是二维。
3、array的就是对应元素相乘,如果行或列数不匹配会自动补全。
array想要实现矩阵相乘,使用np.dot(array1, array2)
4、matrix的
就是矩阵相乘。
matrix想要实现对应元素相乘,使用np.multiply(mat1, mat2)

内容复制于python中list和numpy中array,matrix的全面辨析_Liven_Zhu的博客-CSDN博客

list 与 array、matrix的区别

1、list是Python中的普通列表对象,支持append和attend操作,没有shape属性;array和matrix是numpy数据库中的对象,不支持append和attend操作,具有shape属性。
2、一个list中可以存放不同类型的数据,如int、float、str,或者布尔型;而array和matrix中只能存放相同类型的数据。
3、list不支持乘法操作;array和matrix支持乘法操作。
4、list对象不支持一次性读取一行或一列,只能通过指针进行元素的索引;array和matrix即支持一次性读取一行或一列,也支持通过指针来进行元素的索引。

内容复制于python中list和numpy中array,matrix的全面辨析_Liven_Zhu的博客-CSDN博客

matrix和array处理方法

如果一个程序里面既有matrix 又有array,会让人脑袋大。但是如果只用array,你不仅可以实现matrix所有的功能,还减少了编程和阅读的麻烦。

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

对我来说,numpy 中的array与numpy中的matrix,matlab中的matrix的最大的不同是,在做归约运算时,array的维数会发生变化,但matrix总是保持为2维

内容复制于:numpy中的matrix与array的区别 - chen狗蛋儿 - 博客园 (cnblogs.com)

解释一段python代码 class KalmanFilter(object): def init(self, dim_x, dim_z, dim_u=0): if dim_x < 1: raise ValueError('dim_x must be 1 or greater') if dim_z < 1: raise ValueError('dim_z must be 1 or greater') if dim_u < 0: raise ValueError('dim_u must be 0 or greater') self.dim_x = dim_x self.dim_z = dim_z self.dim_u = dim_u self.x = zeros((dim_x, 1)) # state self.P = eye(dim_x) # uncertainty covariance self.Q = eye(dim_x) # process uncertainty self.B = None # control transition matrix self.F = eye(dim_x) # state transition matrix self.H = zeros((dim_z, dim_x)) # Measurement function self.R = eye(dim_z) # state uncertainty self._alpha_sq = 1. # fading memory control self.M = np.zeros((dim_z, dim_z)) # process-measurement cross correlation self.z = np.array([[None]*self.dim_z]).T # gain and residual are computed during the innovation step. We # save them so that in case you want to inspect them for various # purposes self.K = np.zeros((dim_x, dim_z)) # kalman gain self.y = zeros((dim_z, 1)) self.S = np.zeros((dim_z, dim_z)) # system uncertainty self.SI = np.zeros((dim_z, dim_z)) # inverse system uncertainty # identity matrix. Do not alter this. self._I = np.eye(dim_x) # these will always be a copy of x,P after predict() is called self.x_prior = self.x.copy() self.P_prior = self.P.copy() # these will always be a copy of x,P after update() is called self.x_post = self.x.copy() self.P_post = self.P.copy() # Only computed only if requested via property self._log_likelihood = log(sys.float_info.min) self._likelihood = sys.float_info.min self._mahalanobis = None self.inv = np.linalg.inv
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值