MCPcopy Create free account
hub / github.com/dask/dask / Var

Class Var

dask/dataframe/dask_expr/_reductions.py:1125–1180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1123
1124
1125class Var(ArrayReduction):
1126 # Uses the parallel version of Welford's online algorithm (Chan 79')
1127 # (http://i.stanford.edu/pub/cstr/reports/cs/tr/79/773/CS-TR-79-773.pdf)
1128 _parameters = ["frame", "skipna", "ddof", "numeric_only", "split_every"]
1129 _defaults = {"skipna": True, "ddof": 1, "numeric_only": False, "split_every": False}
1130
1131 @functools.cached_property
1132 def _meta(self):
1133 return make_meta(
1134 meta_nonempty(self.frame._meta).var(
1135 skipna=self.skipna, numeric_only=self.numeric_only
1136 )
1137 )
1138
1139 @property
1140 def chunk_kwargs(self):
1141 return dict(skipna=self.skipna)
1142
1143 @property
1144 def combine_kwargs(self):
1145 return {"skipna": self.skipna}
1146
1147 @property
1148 def aggregate_kwargs(self):
1149 cols = self.frame.columns if self.frame.ndim == 1 else self.frame._meta.columns
1150 return dict(
1151 ddof=self.ddof,
1152 skipna=self.skipna,
1153 meta=self._meta,
1154 index=cols,
1155 )
1156
1157 @classmethod
1158 def reduction_chunk(cls, x, skipna):
1159 values = x.values.astype("f8")
1160 if skipna:
1161 return moment_chunk(
1162 values, sum=chunk.nansum, numel=nannumel, keepdims=True, axis=(0,)
1163 )
1164 else:
1165 return moment_chunk(values, keepdims=True, axis=(0,))
1166
1167 @classmethod
1168 def reduction_combine(cls, parts, skipna):
1169 if skipna:
1170 return moment_combine(parts, sum=np.nansum, axis=(0,))
1171 else:
1172 return moment_combine(parts, axis=(0,))
1173
1174 @classmethod
1175 def reduction_aggregate(cls, vals, ddof, skipna):
1176 if skipna:
1177 result = moment_agg(vals, sum=np.nansum, ddof=ddof, axis=(0,))
1178 else:
1179 result = moment_agg(vals, ddof=ddof, axis=(0,))
1180 return result
1181
1182

Callers 1

varMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected