我有:我有列表List123=[-13,3,12,1]
和2乘4矩阵Matrix123=numpy.zeros((2,4), dtype=Decimal)
。在
我想要的:我想将矩阵的所有条目更改为列表中的任何条目,然后将其打印到终端。有4^(2*4)=65536个可能的组合。我想把每一个组合都打印出来。在
我现在怎么做:这是我当前的代码:
List123=[-13,3,12,1]
Matrix123=numpy.zeros((2,4), dtype=Decimal)
k=0
for k in List123:
Matrix123[0,0]=k
for k in List123:
Matrix123[0,1]=k
for k in List123:
Matrix123[0,2]=k
for k in List123:
Matrix123[0,3]=k
for k in List123:
Matrix123[1,0]=k
for k in List123:
Matrix123[1,1]=k
for k in List123:
Matrix123[1,2]=k
for k in List123:
Matrix123[1,3]=k
print Matrix123
print " "
我的问题是:什么是一种更简洁的方法,只需几行代码就可以写出来?我需要对23×27矩阵做同样的处理。这意味着,如果我找不到更简洁的方法,我必须手动为循环编写23*27=621的代码。在
使用
np.meshgrid
:当然,如果你的},因为所有这些排列将填充地球上所有的存储,这是荒谬的次数,打印他们所有将需要直到宇宙热死。在
shape
是(23,27)
,这将导致memerror
,即使{我强烈建议您在python内置工具中使用itertools:
下面是一个纯递归函数版本:
^{pr2}$在这两种情况下,都有65536个结果。在
您可以使用^{} :
它将用
-13, 3, 12 and 1
输出长度为8的所有可能的解。matrix
将是一个有8个数字的元组,这是可能的解决方案。在如果您需要它以实际的
^{pr2}$numpy.matrix
形式输出结果,您可以动态地创建它们(尽管这需要花费更多的时间)。在或者使用^{} 来提高可读性(感谢@MenglongLi)
它会给你65536个预期的结果。在
相关问题 更多 >
编程相关推荐