這是我嘗試過的代碼。如果我們只想要 5 個隨機分布在其中,我該如何修改它?
import numpy as np
mat = np.random.randint(2,size=(5,5))
uj5u.com熱心網友回復:
>>> import numpy as np
>>> import random
>>> mat = np.zeros(5*5)
>>> indices = random.sample(range(5*5), 5)
>>> mat[indices] = 1
>>> mat = mat.reshape(5, 5)
>>> mat
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1.],
[0., 0., 1., 0., 0.],
[1., 0., 1., 0., 1.],
[0., 0., 0., 0., 0.]])
我已經明確使用了5*5. 你可以把 25 放在那里,N*M或者類似的。
您也可以使用 NumPy 隨機模塊,但 Python stdlibrandom模塊在這里很容易使用。
uj5u.com熱心網友回復:
由于有時評論可能包含出色的答案,但可能會被隱藏(或完全洗掉),因此我將 Michael Szczesny 提供的解決方案放在這里:
>>> mat = np.random.permutation(np.eye(5, dtype=int).ravel()).reshape(5,5)
>>> mat
array([[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 1, 1, 0],
[0, 0, 0, 0, 0]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461729.html
