温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - All possible combinations of elements of three vectors in Python
permutation python combinations

其他 - Python中三个向量的元素的所有可能组合

发布于 2020-03-31 23:46:42

我有三个列表,每个列表包含2个元素。如何获得一个(8x3)数组,其中包含三个列表中元素的所有可能组合(带有替换)?

例:

vec1 = [4, 6]
vec2 = [2, 4]
vec3 = [1, 5]

output = [[4, 2, 1], [4, 2, 5], [4, 4, 1], [4, 4, 5], [6, 2, 1], [6, 4, 5], [6, 2, 5], [6, 4, 1]]

这是我的代码(简体):

import scipy.stats as st
percentiles = [0.01, 0.99]
draws1 = st.norm.ppf(percentiles, 0, 1)
draws2 = st.norm.ppf(percentiles, 0, 1)
draws3 = st.norm.ppf(percentiles, 0, 1)

查看更多

提问者
matthew
被浏览
25
lemac 2020-01-31 20:12

您可以像这样使用numpy.meshgrid()

np.array(np.meshgrid([4, 6], [2, 4], [1, 5])).T.reshape(-1,3)

结果是:

 array([[4, 2, 1],
       [4, 4, 1],
       [6, 2, 1],
       [6, 4, 1],
       [4, 2, 5],
       [4, 4, 5],
       [6, 2, 5],
       [6, 4, 5]])