NumPy 数组每列减去最大值:详细步骤与代码示例
可以使用 NumPy 中的函数来实现这个操作。具体步骤如下:
- 使用 NumPy 中的
amax函数求出每列的最大值。 - 使用 NumPy 中的
tile函数将每列的最大值扩展成与原数组相同的形状。 - 使用 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]]
原文地址: https://www.cveoy.top/t/topic/m6I4 著作权归作者所有。请勿转载和采集!