gpt4 book ai didi

python - 如何找到 Numpy 数组的 M 个元素的 N 个最大乘积子数组?

转载 作者:行者123 更新时间:2023-12-04 15:27:47 27 4
gpt4 key购买 nike

我有一个 Numpy 数组,我需要找到 M 个元素的 N 个最大乘积子数组。例如,我有数组 p = [0.1, 0.2, 0.8, 0.5, 0.7, 0.9, 0.3, 0.5],我想找到 3 个元素的 5 个最高乘积子数组。有没有一种“快速”的方法可以做到这一点?

最佳答案

这是另一种快速的方法:

import numpy as np

p = [0.1, 0.2, 0.8, 0.5, 0.7, 0.9, 0.3, 0.5]
n = 5
m = 3

# Cumulative product (starting with 1)
pc = np.cumprod(np.r_[1, p])
# Cumulative product of each window
w = pc[m:] / pc[:-m]
# Indices of the first element of top N windows
idx = np.argpartition(w, n)[-n:]
print(idx)
# [1 2 5 4 3]

关于python - 如何找到 Numpy 数组的 M 个元素的 N 个最大乘积子数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61915125/

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