我想生成一个随机数n x n
使用 NumPy 的二进制矩阵,其中:
- 每个值都是
0
or 1
- 每行总计为
1
- 每列总计为
1
例如,一个有效的矩阵可能是
[[1 0 0]
[0 0 1]
[0 1 0]]
而无效的是
[[1 0 0]
[0 0 1]
[0 0 1]]
我尝试执行以下操作,但我无法弄清楚如何使用唯一索引对每列中的值进行混洗。如何生成符合上述约束的矩阵?
N = 10
a = np.zeros((N,N))
a[0,:] = 1
创建一个n
by n
单位矩阵,然后将所有行打乱。单位矩阵是一个二进制矩阵,其中每行和每列的总和为 1,并且对行进行混洗可以保留此属性:
n = 5
result = np.identity(n)
np.random.shuffle(result)
print(result)
这将输出类似:
[[0. 1. 0. 0. 0.]
[0. 0. 0. 0. 1.]
[0. 0. 0. 1. 0.]
[1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0.]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)