matlab怎么将向量相同数字去重,MATLAB 与 python 常用函数对比

学完python基础知识、numpy及pandas和可视化之后,终于下决心将MATLAB代码用python再写一遍了,简单总结该过程中遇到的问题及常用函数。

函数基本都是用的numpy库,数据是ndarray

1、按列堆叠数组

MATLAB: [a, b]

numpy:  np.hstack((a,b));    np.concatenate([a, b], axis=1);    np.c_[a, b]

pandas: pd.concat([a, b], axis=1)

2、按行堆叠数组

MATLAB: [a; b]

numpy:  np.vstack((a,b));    np.concatenate([a, b], axis=0);    np.r_[a, b]

pandas: pd.concat([a, b], axis=0)

3、重复行或列

a 重复m行n列

MATLAB:  repmat(a, m, n )

numpy: np.tile(a,(m,n))

4、按原顺序去重

MATLAB:unique(a, 'stable')

numpy:   a[np.sort(np.unique(a, return_index=True)[1])]

np.unique(a) 是去重后进行排序,后面语句输出的是排序索引,按索引排序就是原顺序

5、从大到小排序

MATLAB:sort(a, 'descend');

numpy: np.sort(a)[::-1]

np.sort() 没有从大到小排序,自动从小到大排序再倒序

6、平均值

MATLAB:  mean(a)-每列平均值   mean(a,1)-每列平均值   mean(a,2)-每行平均值

python: a.mean() -所有值的平均值  a.mean(axis=0) -列平均  a.mean(axis=1) -行平均

7、协方差

MATLAB: cov(a)

numpy: np.cov(a, rowvar=False)

pandas: a.cov()

8、一维数组转置

a.reshape(a.shape[0], 1)

a.reshape(-1,1)

9、矩阵运算

MATLAB:  a\b

numpy:  np.linalg.solve(a, b)

10、特征值和特征向量

MATLAB:  [eigenvector, eigenvalue]=eig(a)

numpy:

# 特征值和特征向量 非对称阵 用eig

eigenvalue, eigenvector = np.linalg.eig(a)

# 对称矩阵 用eigh 速度更快

eigenvalue, eigenvector = np.linalg.eigh(a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值