mars.tensor.in1d#
- mars.tensor.in1d(ar1: Union[TileableType, ndarray], ar2: Union[TileableType, ndarray, list], assume_unique: bool = False, invert: bool = False)[源代码]#
Test whether each element of a 1-D tensor is also present in a second tensor.
Returns a boolean tensor the same length as ar1 that is True where an element of ar1 is in ar2 and False otherwise.
We recommend using
isin()instead of in1d for new code.- 参数
ar1 ((M,) Tensor) – Input tensor.
ar2 (array_like) – The values against which to test each value of ar1.
assume_unique (bool, optional) – If True, the input tensors are both assumed to be unique, which can speed up the calculation. Default is False.
invert (bool, optional) – If True, the values in the returned tensor are inverted (that is, False where an element of ar1 is in ar2 and True otherwise). Default is False.
np.in1d(a, b, invert=True)is equivalent to (but is faster than)np.invert(in1d(a, b)).
- 返回
in1d – The values ar1[in1d] are in ar2.
- 返回类型
(M,) Tensor, bool
参见
isinVersion of this function that preserves the shape of ar1.
numpy.lib.arraysetopsModule with a number of other functions for performing set operations on arrays.
备注
in1d can be considered as an element-wise function version of the python keyword in, for 1-D sequences.
in1d(a, b)is roughly equivalent tomt.array([item in b for item in a]). However, this idea fails if ar2 is a set, or similar (non-sequence) container: Asar2is converted to a tensor, in those casesasarray(ar2)is an object tensor rather than the expected tensor of contained values.示例
>>> import mars.tensor as mt >>> test = mt.array([0, 1, 2, 5, 0]) >>> states = [0, 2] >>> mask = mt.in1d(test, states) >>> mask.execute() array([ True, False, True, False, True]) >>> test[mask].execute() array([0, 2, 0]) >>> mask = mt.in1d(test, states, invert=True) >>> mask.execute() array([False, True, False, True, False]) >>> test[mask].execute() array([1, 5])