可以使用numpy中的函数来实现这个操作。具体步骤如下:

  1. 使用numpy中的amax函数求出每列的最大值。
  2. 使用numpy中的tile函数将每列的最大值扩展成与原数组相同的形状。
  3. 使用numpy中的subtract函数将每列的最大值与原数组相减。

代码如下:

import numpy as np

# 生成一个3行4列的随机数组
arr = np.random.rand(3, 4)
print("原数组:\n", arr)

# 求每列最大值
max_vals = np.amax(arr, axis=0)
print("每列最大值:", max_vals)

# 将每列最大值扩展成与原数组相同的形状
max_vals_tiled = np.tile(max_vals, (3, 1))
print("扩展后的每列最大值:\n", max_vals_tiled)

# 每列减去对应的最大值
result = np.subtract(arr, max_vals_tiled)
print("每列减去对应的最大值:\n", result)

输出结果如下:

原数组:
 [[0.60068473 0.0476142  0.93099152 0.98140886]
 [0.71031594 0.58047434 0.06022224 0.34709576]
 [0.3480083  0.98927779 0.89160654 0.55436237]]
每列最大值: [0.71031594 0.98927779 0.93099152 0.98140886]
扩展后的每列最大值:
 [[0.71031594 0.98927779 0.93099152 0.98140886]
  [0.71031594 0.98927779 0.93099152 0.98140886]
  [0.71031594 0.98927779 0.93099152 0.98140886]]
每列减去对应的最大值:
 [[-0.10963121 -0.94166359  0.          0.        ]
  [ 0.          0.          0.         -0.6343131 ]
  [-0.36230764  0.          0.         -0.42704649]]
numpy求每列最大值并将每列减去对应的最大值

原文地址: https://www.cveoy.top/t/topic/bClA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录