vocalpy.validators.validators.is_valid_boundaries_array

vocalpy.validators.validators.is_valid_boundaries_array#

vocalpy.validators.validators.is_valid_boundaries_array(y: ndarray[Any, dtype[_ScalarType_co]], name: str | None = None) bool[source]#

Validates that y is a valid array of boundaries found with a segmentation algorithm, e.g., onsets or offsets of segments returned by vocalpy.segment.meansquared().

To be a valid array of boundaries, y must meet the following conditions: - Be a one dimensional numpy array, as validated with

vocalpy.validators.is_1d_ndarray().

  • Have a dtype that is a float or int, e.g. np.float64 or np.int32.

  • Have values that are all non-negative, i.e. np.all(y >= 0.0)

  • Have values that are strictly increasing, i.e. np.all(y[1:] > y[:-1])

An empty array or an array with a single value are also considered valid, as long as the dtype is correct and any value is non-negative.

Parameters:
y: numpy.ndarray

Array to be validated.

name: str, optional

Name of array in calling function. Used in any error message if supplied.

Returns:
is_valid_boundaries_array: bool

True if y is valid.

Examples

>>> vocalpy.validators.is_valid_boundaries_array(np.array([1, 2, 3], dtype=np.int16))
True
>>> vocalpy.validators.is_valid_boundaries_array(np.array([1.0, 2.0, 3.0], dtype=np.float32))
True
>>> vocalpy.validators.is_valid_boundaries_array(np.array([], dtype=np.float32))
True
>>> vocalpy.validators.is_valid_boundaries_array(np.array([1.0], dtype=np.float32))
True