gpt4 book ai didi

python - 在 Python 中查找 2D np.array 中的局部最小值

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:07 27 4
gpt4 key购买 nike

我有这个两列数组:

A  | 1 
A | 2
A | 3
B | 4
B | 5
B | 6

其中 A、B 是常数。我想要的是找到每个参数 A 和 B 的最小值,因此此操作的结果将是另一个像这样的二维数组:

A | 1
B | 4

当只有一个常数 A 存在时,我成功地找到了极值:

MIN = np.where(arr == np.amin(arr[:,1]))
output = arr[MIN[0],:]
>> output = A | 1

但是当数组比这更复杂时我无法自动化它。谢谢您的帮助。

最佳答案

您可以使用np.unique从第一列中提取唯一值,然后沿第一个轴使用 bool 掩码:

np.stack([(x, a[a[:, 0] == x, 1].min()) for x in np.unique(a[:, 0])])

或者,如果您有权访问 pandas,则可以创建一个 DataFrame 并在第一列上使用 grouby:

import pandas as pd

result = pd.DataFrame(a).groupby(0).min().values
<小时/>

用于设置a示例的代码:

import numpy as np

a = np.array([[1, 1, 1, 2, 2, 2],
[1, 2, 3, 4, 5, 6]]).T

关于python - 在 Python 中查找 2D np.array 中的局部最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59766748/

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