You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算numpy数组axis 0方向最大最小值并对对应元素执行±5运算

import numpy as np

# 初始化数组
array_a = [[38, 44, 13, 9, 10, 12, 6, 16, 1, 17, 2, 13, 8, 46, 7]]
a = np.array(array_a).reshape(3,5)

# 获取每列最大、最小值
min_a = a.min(axis=0)
max_a = a.max(axis=0)

# 对应位置修改数值
a[a == max_a] += 5
a[a == min_a] -= 5

# 输出结果
print(a)

运行后输出结果:

[[43 49 13  9 10]
 [12  1 21 -4 22]
 [-3 13  3 51  2]]

逻辑说明

  • 不需要用apply_along_axis,直接调用numpy数组的min/max方法指定axis=0即可直接得到每列的最小、最大值数组,运算效率更高
  • 利用numpy的广播特性,直接将原数组和每列最大、最小值数组做逐元素比较,得到符合条件的位置掩码,直接对掩码对应位置做加减操作即可,不需要循环遍历
  • 如果某列存在多个相同的最大/最小值,该写法也会同步对所有匹配位置做修改,符合通用场景需求

内容的提问来源于stack exchange,提问作者jennylui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:45:05