質問: どなたか、Numpyでランダムに配列の値を変更する方法を教えて頂けないでしょうか。 例えば5×5の配列があったとして、25個の要素のうちランダムな10個の値を0にするプログラムを書きたいです。 どなたか教えて頂けないでしょうか。よろしくお願いします。
回答: 単純に `numpy.random.choice()` などで重複のない10個のIndex値を乱数にて生成し、 `numpy.put()` などで、そのIndex値に該当する要素を 0 にするだけではないでしょうか。 ``` import numpy as np # 5x5の配列を生成 arr = np.arange(1, 26).reshape(5,5) # 乱数で10個の値を生成(重複なし) p = np.random.choice(25, 10, replace=False) # 上記のIndexに相当する要素を0に変更 np.put(arr, p, 0) print(arr) #[[ 0 2 0 4 0] # [ 6 7 8 0 0] # [ 0 0 13 14 0] # [16 17 18 0 20] # [21 22 23 24 0]] ```