如何在numpy中用n个矩阵(或2d数组)迭代所有2 ^(n ^ 2)二进制n?我会这样的:
for M in ....:
Run Code Online (Sandbox Code Playgroud)
你必须使用itertools.product([0,1], repeat = n**2),然后转换为2d numpy阵列?
这段代码会给我一个随机的2d二进制矩阵,但这不是我需要的.
np.random.randint(2, size=(n,n))
Run Code Online (Sandbox Code Playgroud)
2**(n**2)请注意,即使对于相对较小的 n,这也是一个很大的数字,因此您的循环可能会无限期地运行很长时间。
话虽这么说,迭代您需要的矩阵的一种可能方法是例如
nxn = np.arange(n**2).reshape(n, -1)
for i in xrange(0, 2**(n**2)):
arr = (i >> nxn) % 2
# do smthng with arr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1462 次 |
| 最近记录: |