Add pixel wise independent noise to image
You have several options. If you want to take random samples with replacement, just use one of the numpy's builtin random modules (i.e., numpy.random.random). You could also use numpy.random.pareto for more dramatic/bursty noise. These methods generate independent samples.
If you have a distribution in the form of a set or array that you want to pull samples from without repetition (for instance you have an array [0.1, 0.3, 0.9] and want to generate noise with ONLY these values), you use python's builtin random.random.choice([0.1, 0.3, 0.9]) to draw independent samples from your custom distribution. You can also specify replace=False.
My question is simple: I have an image and I want to add pixel wise independent noise to the image. The noise can be derived from from any distribution such as Gaussian. What are the available modules in numpy/scikit-learn to do the same?
I do not have any code but I am learning about modules such as numpy.random.normal, etc. and I needed more clarification.
None of the modules explicitly say that if I draw samples from a distribution multiple times, the draws will be independent. 
Thank you for suggestions.