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

如何在NumPy二维数组中交换最小值与最大值?

交换NumPy二维数组的最小值与最大值

要实现这个需求,只需定位到数组中最小值和最大值的位置,再交换二者即可,以下是完整实现代码:

import numpy as np

n = int(input("How many arrays: "))
m = int(input("How many numbers: "))

rng = np.random.default_rng()
arr = rng.random((n, m))

print("原数组:")
print(arr)

# 获取最小值和最大值的二维坐标
min_pos = np.unravel_index(np.argmin(arr), arr.shape)
max_pos = np.unravel_index(np.argmax(arr), arr.shape)

# 交换两个位置的元素
arr[min_pos], arr[max_pos] = arr[max_pos], arr[min_pos]

print("\n交换后数组:")
print(arr)

核心逻辑说明:

  • np.argmin(arr)会返回数组扁平化后最小值的索引,np.unravel_index将这个一维索引转换为二维数组的(row, col)坐标
  • 用同样的方式np.argmax(arr)和np.unravel_index获取最大值的二维坐标
  • 直接通过坐标索引交换两个元素,这是NumPy中高效的元素交换方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:20:32