python - numpy数组的numpy缩放特定值
问题描述
我想通过乘数(例如 2)缩放 numpy 数组数字的特定值(例如大于 5)。我知道我可以通过循环来实现这一点,但我想避免循环。我想我可以用一个 numpy 掩码以某种方式实现这一点,但我不知道如何实现它。为了演示我的目标,我使用了虚构的函数 scale_array。
这是一个最小的工作示例
import numpy as np
numbers = np.array([-3, 5, 2, -1, -15, 10])
mask = np.abs(numbers) > 5
numbers_scaled = scale_array(array=numbers, mask=mask, scale_factor=2)
print(numbers_scaled) # np.array([-3, 5, 2, -1, -30, 20])
解决方案
将乘以 2 的掩码值直接分配给原始数组:
numbers = np.array([-3, 5, 2, -1, -15, 10])
mask = np.abs(numbers) > 5
numbers[mask] = numbers[mask]*2
numbers
array([ -3, 5, 2, -1, -30, 20])
推荐阅读
- php - 如何在另一个页面上获取 div 项的数据属性
- discord.js - 如何编写通过公会职位随机删除人们角色的代码
- python - 用于匹配特定 URL 的正则表达式
- c++ - 编译时未检测到主函数
- vbscript - 如何更改通过 vbs 运行的 chrome 窗口的图标?
- php - PHP ImageMagick 委托错误 - 找不到指定的文件
- java - LdapTemplate 使用并行流和 LdapTemplate 搜索捕获异常
- mysql - 如何格式化这个 MySQL 存储过程?
- npm - 如何通过 homebrew 使用 zshrc 在 node@12 和 npm@6.9.0 上安装 yo
- elasticsearch - 弹性搜索创建索引 - 失败