Python 约束置换的numpy数组生成
长话短说,我试图生成一组numpy数组的所有可能排列。我有三个数字[j,k,m],我想为每个数字[j,k,m]指定一个最大值。那么,如何获得这些值下的所有数组组合?我怎样才能强制k值也始终为偶数?例如: 因此,当最大值设置为[1,2,2]时,排列将是:[0,0,0],[0,0,1],[0,0,2],[0,2,0],[0,2,1],[0,2,2],[1,0,0],[1,0,1] 我意识到我没有任何代码来展示,但我恐怕我真的不知道从哪里开始Python 约束置换的numpy数组生成,python,arrays,numpy,Python,Arrays,Numpy,长话短说,我试图生成一组numpy数组的所有可能排列。我有三个数字[j,k,m],我想为每个数字[j,k,m]指定一个最大值。那么,如何获得这些值下的所有数组组合?我怎样才能强制k值也始终为偶数?例如: 因此,当最大值设置为[1,2,2]时,排列将是:[0,0,0],[0,0,1],[0,0,2],[0,2,0],[0,2,1],[0,2,2],[1,0,0],[1,0,1] 我意识到我没有任何代码来展示,但我恐怕我真的不知道从哪里开始 从其他答案来看,sympy似乎有些用处?我找到了你们可能感
从其他答案来看,sympy似乎有些用处?我找到了你们可能感兴趣的答案,并对其进行了概括。因此,您可以为每个项目构建可能的值列表,如下所示:
X = [[0, 1], [0, 1, 2], [0, 1, 2]]
然后使用:
np.array(np.meshgrid(*X)).T.reshape(-1, len(X))
输出包含您想要的18项。实际上,如果您只有最大值
[J,K,L]
,您可以使用X=[range(J+1)、range(K+1)、range(L+1)]
构造X
,谢谢!这正是使这个网站如此伟大的专业知识!我想我的问题有点不清楚,我需要每个数组的中间值为偶数,但在不同的站点上使用不同的解决方案,我得到了我需要的:def permute(j,k,m):a=np.stack([[I,2*l,n]对于范围内的I(j+1),对于范围内的l(k+1),对于范围内的n(m+1)])返回a