def compute(self, today, assets, out, value): if isinstance(value, LabelArray): out[:] = ~np_any(value.is_missing(), axis=0) else: out[:] = ~np_any( is_missing(value, self.inputs[0].missing_value), axis=0, )
def compute(self, today, assets, out, value): if isinstance(value, LabelArray): out[:] = ~np_any(value.is_missing(), axis=0) else: out[:] = ~np_any( is_missing(value, self.inputs[0].missing_value), axis=0, )
def _compute(self, arrays, dates, assets, mask): data = arrays[0] group_labels, null_label = self.inputs[1]._to_integral(arrays[1]) effective_mask = ( mask & (group_labels != null_label) & ~is_missing(data, self.inputs[0].missing_value)).view(uint8) return grouped_masked_is_maximal( # Unconditionally view the data as int64. # This is safe because casting from float64 to int64 is an # order-preserving operation. data.view(int64_dtype), # PERF: Consider supporting different sizes of group labels. group_labels.astype(int64_dtype), effective_mask, )
def _compute(self, arrays, dates, assets, mask): data = arrays[0] group_labels, null_label = self.inputs[1]._to_integral(arrays[1]) effective_mask = ( mask & (group_labels != null_label) & ~is_missing(data, self.inputs[0].missing_value) ).view(uint8) return grouped_masked_is_maximal( # Unconditionally view the data as int64. # This is safe because casting from float64 to int64 is an # order-preserving operation. data.view(int64_dtype), # PERF: Consider supporting different sizes of group labels. group_labels.astype(int64_dtype), effective_mask, )
def _compute(self, arrays, dates, assets, mask): data = arrays[0] if isinstance(data, LabelArray): return ~data.is_missing() return ~is_missing(arrays[0], self.inputs[0].missing_value)
def _compute(self, arrays, dates, assets, mask): data = arrays[0] if isinstance(data, LabelArray): return data.is_missing() return is_missing(arrays[0], self.inputs[0].missing_value)