1
我想建立一个矩阵,满足起初此条件:如何创建一个numpy矩阵,其值满足几个条件?
- 例如如果一个值
m[2][1] == 0
< - >m[1][2] in {0,1}
对于这一个我使用像上三角矩阵:
m = np.ones((6, 6), int)
m = np.triu(m, 1)
我改变剩余为零的一些随机值,直到一定比例达到:
MaxPer = 0.75
i, e = np.count_nonzero(m), np.count_nonzero(m)
MAX = np.round(MaxPre*e)
while i > MAX:
m[np.random.randint(len(m[0][:]))][np.random.randint(len(m[0][:]))] = 0
i = np.count_nonzero(m)
现在第二个标准是一个我挣扎:
- 如果
m[1][2] == 1 & m[1][3] == 0
< - >m[2][3] == 0
我想检查,如果在m
所有值满足该条件(索引1,2,3是实施例)。如果不是,我想将m[2][3]
的值更改为零。我使用for-loops尝试了以下代码,但它将所有值覆盖为零。
for k in range(len(m[0][:])):
for l in range(k, len(m[0][:])):
for j in range(l,len(m[0][:])):
if matrix[k][l] == 1 & matrix[k][j] == 0:
matrix[l][j] = 0
有没有简单的方法来没有循环?
你好Benedikt,并欢迎来到该网站。我们希望在这里保持非常准确的问题,所以我继续前进并修剪掉了你的问题。如果您对我的更改不满意,请随时再次编辑它。 – MackM
感谢您编辑Mack;) –