在我的NumPy 2D数组中有任何交换最小值和最大值的方法吗
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(arr)
使用以下片段,您首先确定数组arr
中的最小值和最大值,然后找到所有最大值和最小值的位置(数组中可能有多个条目包含例如最大值(,并将它们存储在布尔数组max_mask
/min_mask
中,最后使用这些布尔数组对原始数组进行索引并插入新值。
max = arr.max()
min = arr.min()
max_mask = arr == max
min_mask = arr == min
arr[max_mask] = min
arr[min_mask] = max