gpt4 book ai didi

python - 生成所有可能组合的 numpy 数组(物种组合)

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:28 27 4
gpt4 key购买 nike

我想生成一个 numpy 数组,表示潜在的物种组合(每行是一个组合),满足以下条件:每个组合最多包含 5 个物种,每个物种最多 50 个个体(步长为 10 ).因此,最终数组应该有 5 列(代表五个物种中的每一个)并且每个单元格中的值可以采用 {0,10,20,30,40,50}。所有可能的组合都应该在数组中表示。

我设法在 R 中非常简单地做到了这一点,但由于进一步处理(更大的数据集,n>35*10^6 行),我想切换到 python 确实缩短了计算时间(使用一些 scipy-biodiversity 函数)。

这里是相当简单的 R 代码,我想将其翻译成 Python 等效代码:

Assemblage_generated <- expand.grid(seq(0,50,10),seq(0,50,10),seq(0,50,10),seq(0,50,10),seq(0,50,10))

是否有专门用于执行此类操作的特定 Python 函数?

最佳答案

我相信您正在寻找的是 Cartesian product (我看到“jdehesa”在我面前提出了这个建议)。如链接中所示,这可以通过多种方式实现,具体取决于速度要求。

针对您的问题的快速而肮脏的解决方案可能如下:

import numpy as np
import itertools

lst = list(itertools.product(*[np.arange(0, 60, 10, dtype='int') for i in range(5)]))

# Compare with output from R:
for (i, li) in enumerate(lst):
print(i, li)

关于python - 生成所有可能组合的 numpy 数组(物种组合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901433/

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