pub fn mask(array: &dyn Array, mask: &Mask) -> VortexResult<ArrayRef>
Expand description
Replace values with null where the mask is true.
The returned array is nullable but otherwise has the same dtype and length as array
.
ยงExamples
use vortex_array::IntoArray;
use vortex_array::arrays::{BoolArray, PrimitiveArray};
use vortex_array::compute::{ mask};
use vortex_mask::Mask;
use vortex_scalar::Scalar;
let array =
PrimitiveArray::from_option_iter([Some(0i32), None, Some(1i32), None, Some(2i32)]);
let mask_array = Mask::try_from(
&BoolArray::from_iter([true, false, false, false, true]),
)
.unwrap();
let masked = mask(array.as_ref(), &mask_array).unwrap();
assert_eq!(masked.len(), 5);
assert!(!masked.is_valid(0).unwrap());
assert!(!masked.is_valid(1).unwrap());
assert_eq!(masked.scalar_at(2).unwrap(), Scalar::from(Some(1)));
assert!(!masked.is_valid(3).unwrap());
assert!(!masked.is_valid(4).unwrap());