numpy - 如何根据条件更改 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 操作。
check = array>4
这将为您提供一个形状相同的布尔数组,并带有相关的真值。然后您可以乘以 1 得到 1 和 0,因为 true 和 false 具有整数值。
您也可以使用 numpy.where 来明确。
out = numpy.zeros(array.shape)
out[numpy.where(check)] = 1
推荐阅读
- android - 创建的视图不在给定的坐标处
- c# - 在 OnSleep 应用程序之后单击主页上的按钮显示 SplashScreen
- angular - 带有自签名 SSL 证书的浏览器推送通知
- ruby-on-rails - 使用 Rails 乐观锁定实时编辑器数据
- vue.js - 如何在 VSF 1 中为 magento 2.2.4 框架覆盖店面 ui 文件
- python - 为什么我在 web3py 模块安装过程中不断收到此错误
- python - 是否有将 MP3 文件转换为包含以下列([seconds]、[Frequnecy])的数据帧的 python 代码?
- docker - Docker - 从私有网络访问主机
- python - Python 进程 TypeError: no default __reduce__ due to non-trivial __cinit__
- apache-spark - 分配最大 spark.driver.memory