将numpy ndarry负元素替换为0(零)

2024-06-14 02:31:59 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个婚礼

[[2, -7, 5], [-6, 2, 0] [1, -4, 2], [-2, 6, 8]]

如何在所有负元素都替换为0的情况下获得numpy nd arry:

[[2, 0, 5], [0, 2, 0] [1, 0, 2], [0, 6, 8]]

谢谢你宝贵的时间


Tags: numpy元素时间情况nd婚礼arry
2条回答

您也可以使用np.where()

arr = np.array([[2, -7, 5], [-6, 2, 0], [1, -4, 2], [-2, 6, 8]])
result = np.where(arr<0, 0, arr)

输出:

[[2 0 5]

 [0 2 0]
 [1 0 2]
 [0 6 8]]

您可以使用^{}在零和无限之间进行剪裁:

arr = np.array([[2, -7, 5], [-6, 2, 0], [1, -4, 2], [-2, 6, 8]])

np.clip(arr, a_min = 0, a_max = np.inf)

array([[2., 0., 5.],
       [0., 2., 0.],
       [1., 0., 2.],
       [0., 6., 8.]])

否则,您可以使用如下内容(请注意,这会更改阵列):

arr[arr <= 0] = 0

>>> arr
array([[2, 0, 5],
       [0, 2, 0],
       [1, 0, 2],
       [0, 6, 8]])

相关问题 更多 >