在成为MATLAB用户多年之后,我现在正在迁移到Python。
我试图找到一种简洁的方式,简单地用python重写下面的MATLAB代码:
s = sum(Mtx);
newMtx = Mtx(:, s>0);
其中Mtx是2D稀疏矩阵
我的python解决方案是:
s = Mtx.sum(0)
newMtx = Mtx[:, np.where((s>0).flat)[0]] # taking the columns with nonzero indices
其中Mtx是2D CSC稀疏矩阵
python代码不像matlab中那样可读性/优雅。。有没有想法如何写得更优雅?
谢谢!
3条答案
按热度按时间wh6knrhe1#
找到了一个简洁的答案,多亏了雷凌的带领:
另一种选择是:
waxmsbnn2#
请尝试执行以下操作:
来源:链接
与您的版本相比,它没有那么模糊,但根据指南,这是您能得到的最好的版本!
4xrmg8kj3#
尝试使用find获取与查找条件匹配的行和列索引