numpy求每行最大值并将每列减去对应的最大值
可以使用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]]
原文地址: https://www.cveoy.top/t/topic/bClL 著作权归作者所有。请勿转载和采集!