[問題] numpy broadcasting 的使用

看板Python作者 (NMOSFET)時間7年前 (2018/06/13 23:59), 編輯推噓0(002)
留言2則, 1人參與, 7年前最新討論串1/3 (看更多)
各位大大好,小的最近遇到一個問題, 假設有個 numpy 二維矩陣 A, 我想要讓 A 矩陣裡的值, 以 10% 的機率設為 0, 於是寫了以下程式碼 : rows = 10 cols = 10 prb = np.random.random((rows, cols)) mask = prb<0.1 for row in range(rows): for col in range(cols): if(mask[row][col]): A[row][col]=0 有沒有能夠利用numpy的broadcasting來達到同樣的效果, 而不是用 for 迴圈,因為上面這種寫法, 我只要在if()裡面產生隨機數判斷就好, 不用在上面宣告 prb 和 mask 來多此一舉, 能否請各位大大幫我解惑,感恩!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.18.6 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1528905581.A.2DF.html

06/14 16:55, 7年前 , 1F
A[prb < 0.1] = 0
06/14 16:55, 1F

06/14 16:56, 7年前 , 2F
喔有人回了XD
06/14 16:56, 2F
文章代碼(AID): #1R8JzjBV (Python)
文章代碼(AID): #1R8JzjBV (Python)