我知道还有其他类似的问题,这些问题会生成具有某些属性的矩阵,但是我希望生成给定大小的所有可能的矩阵,并且没有限制,除了Python中的条目为1或0之外。我该怎么办?
答案 0 :(得分:1)
我做到了(只是开玩笑)
def gen(n, m):
for i in range(2**(n*m)):
yield np.array([int(k) for k in "{0:b}".format(i).zfill(n*m)]).reshape(n,m)
这种工作方式有点像破解,我用二进制数,然后用位填充数组。
如果您不熟悉生成器/迭代器,只需看看如何使用它即可:
for mat in gen(3, 5): pass # mat goes threw every possible array (uses virtually no memory)
l = list(gen(3, 5)) # array of all possible arrays (uses a lot of memory)