首页 > 解决方案 > 如何根据条件更改 ndarray 的值?

问题描述

我有一个数组 = [5,7,8,1,2],如果 Element > 4,我想返回 1,否则返回 0。所以想要的结果是 [1,1,1,0,0]。我尝试通过 array.apply(lambda x: 1 if x>4 else 0)。但它不起作用

标签: numpy

解决方案


这是一个非常基本的 numpy 操作。

check = array>4

这将为您提供一个形状相同的布尔数组,并带有相关的真值。然后您可以乘以 1 得到 1 和 0,因为 true 和 false 具有整数值。

您也可以使用 numpy.where 来明确。

out = numpy.zeros(array.shape)
out[numpy.where(check)] = 1

推荐阅读