nlcpy.delete

nlcpy.delete(arr, obj, axis=None)[source]

Returns a new array with sub-arrays along an axis deleted.

For a one dimensional array, this returns those entries not returned by arr[obj].

Parameters
arrarray_like

Input array.

objslice, int or array of ints

Indicate indices of sub-arrays to remove along the specified axis.

axisint, optional

The axis along which to delete the subarray defined by obj. If axis is None, obj is applied to the flattened array.

Returns
outndarray

A copy of arr with the elements specified by obj removed. Note that delete does not occur in-place. If axis is None, out is a flattened array.

See also

insert

Inserts values along the given axis before the given indices.

append

Appends values to the end of an array.

Note

Often it is preferable to use a boolean mask. For example:

>>> import nlcpy as vp
>>> arr = vp.arange(12) + 1
>>> mask = vp.ones(len(arr), dtype=bool)
>>> mask[[0,2,4]] = False
>>> result = arr[mask,...]

Is equivalent to vp.delete(arr, [0,2,4], axis=0), but allows further use of mask.

Examples

>>> import nlcpy as vp
>>> arr = vp.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> arr
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
>>> vp.delete(arr, 1, 0)
array([[ 1,  2,  3,  4],
       [ 9, 10, 11, 12]])
>>> vp.delete(arr, slice(None, None, 2), 1)
array([[ 2,  4],
       [ 6,  8],
       [10, 12]])
>>> vp.delete(arr, [1,3,5], None)
array([ 1,  3,  5,  7,  8,  9, 10, 11, 12])