I have a multidimensional numpy array which I need to modify such that its elements are modified as a function of the index of one of the dimensions only. I can of course do that with a for loop, as in the following simplified example
import numpy as np
a = np.ones( (2,10) )
for ii in range(a.shape[1]):
a[:,ii] *= ii
If the array becomes very large, this might slow down the execution and I was wondering if there are some clever ways to avoid using a for loop?