可以使用numpy的amax函数求每行的最大值,然后使用numpy的tile函数将每行最大值复制到对应行的所有元素,再用原始矩阵减去这个新矩阵,即可实现将每列减去对应的最大值。

示例代码如下:

import numpy as np

# 创建示例矩阵
arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

# 求每行最大值
row_max = np.amax(arr, axis=1)

# 将每行最大值复制到对应行的所有元素
row_max_mat = np.tile(row_max, (arr.shape[1], 1)).T

# 将原始矩阵减去新矩阵
new_arr = arr - row_max_mat

# 输出结果
print("原始矩阵:\n", arr)
print("每行最大值:\n", row_max)
print("每行最大值矩阵:\n", row_max_mat)
print("每列减去对应的最大值后的矩阵:\n", new_arr)

输出结果为:

原始矩阵:
 [[1 2 3]
 [4 5 6]
 [7 8 9]]
每行最大值:
 [3 6 9]
每行最大值矩阵:
 [[3 3 3]
 [6 6 6]
 [9 9 9]]
每列减去对应的最大值后的矩阵:
 [[-2 -1  0]
 [-2 -1  0]
 [-2 -1  0]]
numpy求每行最大值并将每列减去对应的最大值

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

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