Numpy array admits a list of indices, for example
a = np.arange(1000)
l = list([1,44,66,33,90,345])
a[l] = 22
But this method don\'t work i
You can use fancy indexing to build an index list.
l = numpy.array([1,44,66,33,90]+range(200,300)+range(500,600))
a[l] = 22
But as @Lev pointed out, this may not be any faster (though it almost certainly will be if you can precompute the index list).
However, fancy indexing applies per-axis. So you can fancy index on one axis, and slice the others, if that helps at all:
a = numpy.random.randn(4, 5, 6)
l = numpy.array([1, 2])
a[l, slice(None), slice(2, 4)] = 10