1
私が最初にこの条件を満たしているマトリックス、作成したい:例えば値がいくつかの条件を満たすnumpy行列を作成するにはどうすればよいですか?
- を
m = np.ones((6, 6), int) m = np.triu(m, 1)
および特定のパーセンテージが達成されるまで、私は、ゼロに残りのいくつかのランダムな値を変更: - 値場合
m[2][1] == 0
< Iのような上三角行列を使用しこれについて>m[1][2] in {0,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
Iは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
ループなしでこれに簡単な方法はありますか?
こんにちはベネディクト、このサイトにようこそ。私たちはここに質問を残すのが好きなので、私は先に進み、あなたのことを切り捨てました。変更に満足できない場合は、もう一度編集してください。 – MackM
Mack;を編集していただきありがとうございます) –