Compute the weighted average along the specified axis.
Parameters:  a : array_like
axis : int, optional
weights : array_like, optional
returned : bool, optional


Returns:  average, [sum_of_weights] : {array_type, double}

Raises:  ZeroDivisionError :
TypeError :

Examples
>>> data = range(1,5)
>>> data
[1, 2, 3, 4]
>>> np.average(data)
2.5
>>> np.average(range(1,11), weights=range(10,0,1))
4.0
>>> data = np.arange(6).reshape((3,2))
>>> data
array([[0, 1],
[2, 3],
[4, 5]])
>>> np.average(data, axis=1, weights=[1./4, 3./4])
array([ 0.75, 2.75, 4.75])
>>> np.average(data, weights=[1./4, 3./4])
...
TypeError: Axis must be specified when shapes of a and weights differ.