class_docstr: Weighted Average Value of an arbitrary column
  
  **Default Inputs**: None
  
  **Default Window Length**: None
class_docstr_tok: ["Weighted","Average","Value","of","an","arbitrary","column","*","*","Default","Inputs","*","*",":","None","*","*","Default","Window","Length","*","*",":","None"]
code: def compute(self, today, assets, out, data):
      ndays = data.shape[0]
  
      # Initialize weights array
      weights = arange(1, ndays + 1, dtype=float64_dtype).reshape(
          ndays, 1
      )
  
      # Compute normalizer
      normalizer = (ndays * (ndays + 1)) / 2
  
      # Weight the data
      weighted_data = data * weights
  
      # Compute weighted averages
      out[:] = nansum(weighted_data, axis=0) / normalizer
  
imports: from numbers import Number
  from numpy import arange, average, clip, copyto, exp, fmax, full, isnan, log, NINF, sqrt, sum, unique
  from zipline.pipeline.data import EquityPricing
  from zipline.utils.input_validation import expect_types
  from zipline.utils.math_utils import nanargmax, nanmax, nanmean, nanstd, nansum
  from zipline.utils.numpy_utils import float64_dtype, ignore_nanwarnings
  from .factor import CustomFactor
  from ..mixins import SingleInputMixin
label_desc: Use image node_id 1 for calling the LinearWeightedMovingAverage obj's underlying member method code with example usage: obj.compute(today, assets, out, data) without return types