gpt4 book ai didi

python - 从行中减去行的最小值

转载 作者:行者123 更新时间:2023-12-04 01:45:52 29 4
gpt4 key购买 nike

我知道

a - a.min(axis=0)

将从列中的每个元素中减去每列的最小值。我想从行中的每个元素中减去每一行中的最小值。我知道

a.min(轴=1)

指定一行内的最小值,但我如何告诉减法按行而不是列进行? (如何指定减法的轴?)

编辑:对于我的问题,a 是 NumPy 中的二维数组。

最佳答案

假设 a是一个 numpy 数组,你可以使用这个:

new_a = a - np.min(a, axis=1)[:,None]

试试看:
import numpy as np

a = np.arange(24).reshape((4,6))
print (a)
new_a = a - np.min(a, axis=1)[:,None]
print (new_a)

结果:
[[ 0  1  2  3  4  5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]]

请注意 np.min(a, axis=1)返回一行最小值的一维数组。

我们然后使用 [:,None] 为其添加一个额外的维度.它看起来像这个二维数组:
array([[ 0],
[ 6],
[12],
[18]])

当这个二维数组参与减法时,它会被广播成 (4,6) 的形状。 ,看起来像这样:
array([[ 0,  0,  0,  0,  0,  0],
[ 6, 6, 6, 6, 6, 6],
[12, 12, 12, 12, 12, 12],
[18, 18, 18, 18, 18, 18]])

现在,逐元素减法发生在两个 (4,6) 之间。数组。

关于python - 从行中减去行的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251002/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com