np.fmodに絡んだnumpy記載メモ
x_train = x[np.fmod(range(16), 4) !=i]
という記述があり、意味がわからず、調べて理解したのでメモ
i には、
for i in range(0,4)
x は、np.array
x = np.array([15.42555012, 23.00811234, 5.00285937, 12.55831432, 8.66889727, 7.30846487, 9.65650528, 13.63901818, 14.91918686, 18.47041835, 15.47986286, 2.13048751, 10.11130624, 26.95293591, 5.68468983, 21.76168775])
np.fmodは、
In [3]: np.fmod(10,3) == 10%3 Out[3]: True
と同じ
In [32]: np.fmod(range(16), 4) Out[32]: array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int32)
iに0が入ったら、
In [24]: [np.fmod(range(16), 4) !=0] Out[24]: [array([False, True, True, True, False, True, True, True, False, True, True, True, False, True, True, True])]
Falseが取り除かれ、Trueが残るってことか、、、
In [47]: x[np.fmod(range(16), 4) !=0] Out[47]: array([23.00811234, 5.00285937, 12.55831432, 7.30846487, 9.65650528,13.63901818, 18.47041835, 15.47986286, 2.13048751, 26.95293591, 5.68468983, 21.76168775]) In [48]: x Out[48]: array([15.42555012, 23.00811234, 5.00285937, 12.55831432, 8.66889727, 7.30846487, 9.65650528, 13.63901818, 14.91918686, 18.47041835, 15.47986286, 2.13048751, 10.11130624, 26.95293591, 5.68468983, 21.76168775])
numpyならではの書き方ね。