So I have created a super-slow version:
arr = np.arange(3*9).reshape((3, 9))
print(arr)
to_black = np.random.choice(a=[False, True], size=9)
for i, j in enumerate(arr):
for k, e in enumerate(j):
if to_black[k]:
arr[i,k] = 0
print(arr)
That outputs this:
[[ 0 1 2 3 4 5 6 7 8]
[ 9 10 11 12 13 14 15 16 17]
[18 19 20 21 22 23 24 25 26]]
[[ 0 0 2 0 0 5 6 0 8]
[ 0 0 11 0 0 14 15 0 17]
[ 0 0 20 0 0 23 24 0 26]]
Now I wonder how one would do it faster in terms of CPU performance?