array_split.split.calculate_num_slices_per_axis

array_split.split.calculate_num_slices_per_axis(num_slices_per_axis, num_slices, max_slices_per_axis=None)[source]

Returns a numpy.ndarray (return_array say) where non-positive elements of the num_slices_per_axis sequence have been replaced with positive integer values such that numpy.product(return_array) == num_slices and:

numpy.all(
    return_array[numpy.where(num_slices_per_axis <= 0)]
    <=
    max_slices_per_axis[numpy.where(num_slices_per_axis <= 0)]
) is True
Parameters:
  • num_slices_per_axis (sequence of int) – Constraint for per-axis sub-divisions. Non-positive elements indicate values to be replaced in the returned array. Positive values are identical to the corresponding element in the returned array.
  • num_slices (integer) – Indicates the number of slices (rectangular sub-arrays) formed by performing sub-divisions per axis. The returned array return_array has elements assigned such that numpy.product(return_array) == num_slices.
  • max_slices_per_axis (sequence of int (or None)) – Constraint specifying maximum number of per-axis sub-divisions. If None defaults to numpy.array([numpy.inf,]*len(num_slices_per_axis)).
Return type:

numpy.ndarray

Returns:

An array return_array such that numpy.product(return_array) == num_slices.

Examples:

>>> from array_split.split import calculate_num_slices_per_axis
>>>
>>> calculate_num_slices_per_axis([0, 0, 0], 16)
array([4, 2, 2])
>>> calculate_num_slices_per_axis([1, 0, 0], 16)
array([1, 4, 4])
>>> calculate_num_slices_per_axis([1, 0, 0], 16, [2, 2, 16])
array([1, 2, 8])