將Numpy中滿足某個條件的改成一個數
阿新 • • 發佈:2018-11-24
>>> import numpy as np
>>> a = np.random.randint(-5, 5, (5, 5))
>>> a
array([[-4, -4, -5, 2, 1],
[-1, -2, -1, 3, 3],
[-1, -2, 3, -5, 3],
[ 0, -3, -5, 1, -4],
[ 0, 3, 1, 3, -4]])
方式一
>>> np.maximum(a, 0) array([[0, 0, 0, 2, 1], [0, 0, 0, 3, 3], [0, 0, 3, 0, 3], [0, 0, 0, 1, 0], [0, 3, 1, 3, 0]])
方式二
>>> (a + abs(a)) / 2
array([[0, 0, 0, 2, 1],
[0, 0, 0, 3, 3],
[0, 0, 3, 0, 3],
[0, 0, 0, 1, 0],
[0, 3, 1, 3, 0]])
方式三
>>> b = a.copy() >>> b[b < 0] = 0 >>> b array([[0, 0, 0, 2, 1], [0, 0, 0, 3, 3], [0, 0, 3, 0, 3], [0, 0, 0, 1, 0], [0, 3, 1, 3, 0]])
方式四
>>> np.where(a > 0, a, 0)
array([[0, 0, 0, 2, 1],
[0, 0, 0, 3, 3],
[0, 0, 3, 0, 3],
[0, 0, 0, 1, 0],
[0, 3, 1, 3, 0]])