Python:如何用" 0"替换负值。在矩阵?

时间:2016-06-16 15:19:43

标签: python-3.x replace floating-point

我们说我有一个矩阵

var=$(command)

如果{0}开始{0},我想替换所有负值。

有没有办法做python。由于我的矩阵非常大,它还需要具有计算效率吗?

1 个答案:

答案 0 :(得分:3)

最简单的解决方案我建议使用numpy来处理任何矩阵操作,这样你就不必重新实现轮子了。也许值得研究numpy masking操作,比如masked_where

我不是说这是最有效的解决方案,真的不知道你认为什么是大矩阵以及你需要什么样的效率,我可能会尝试几种方法,并使用分析器比较它们并确定哪种方法最好对你而言。

>>> import numpy
>>> x = numpy.array([1, 2, 3, -99, 5])
>>> c = numpy.ma.masked_where(x < 0, x, copy=False)
>>> c
masked_array(data = [1 2 3 -- 5],
             mask = [False False False  True False],
       fill_value = 999999)

>>> x2 = c.filled(0)
>>> x2
array([1, 2, 3, 0, 5])