- ak.linear_fit(x, y, weight=None, axis=None, keepdims=False, mask_identity=True)¶
x – one coordinate to use in the linear fit.
y – the other coordinate to use in the linear fit.
weight – data that can be broadcasted to
yto give each point a weight. Weighting points equally is the same as no weights; weighting some points higher increases the significance of those points. Weights can be zero or negative.
0is the outermost,
1is the first level of nested lists, etc., and negative
axiscounts from the innermost:
-1is the innermost,
-2is the next level up, etc.
keepdims (bool) – If False, this function decreases the number of dimensions by 1; if True, the output values are wrapped in a new length-1 dimension so that the result of this operation may be broadcasted with the original array.
mask_identity (bool) – If True, the application of this function on empty lists results in None (an option type); otherwise, the calculation is followed through with the reducers’ identities, usually resulting in floating-point
Computes the linear fit of
y with respect to
x (many types supported,
including all Awkward Arrays and Records, must be broadcastable to each
other). The grouping is performed the same way as for reducers, though
this operation is not a reducer and has no identity.
This function has no NumPy equivalent.
Passing all arguments to the reducers, the linear fit is calculated as
sumw = ak.sum(weight) sumwx = ak.sum(weight * x) sumwy = ak.sum(weight * y) sumwxx = ak.sum(weight * x**2) sumwxy = ak.sum(weight * x * y) delta = (sumw*sumwxx) - (sumwx*sumwx) intercept = ((sumwxx*sumwy) - (sumwx*sumwxy)) / delta slope = ((sumw*sumwxy) - (sumwx*sumwy)) / delta intercept_error = np.sqrt(sumwxx / delta) slope_error = np.sqrt(sumw / delta)
are given as an
ak.Record with four fields. The values of these fields
might be arrays or even nested arrays; they match the structure of