isin

paddle. isin ( x, test_x, assume_unique=False, invert=False, name=None ) [源代码]

检验 x 中的每一个元素是否在 test_x 中。

参数

  • x (Tensor) - 输入的 tensor,数据类型为:'bfloat16', 'float16', 'float32', 'float64', 'int32', 'int64'。

  • test_x (Tensor) - 用于检验的 tensor,数据类型为:'bfloat16', 'float16', 'float32', 'float64', 'int32', 'int64'。

  • assume_unique (bool,可选) - 如果设置为 True,表示 xtest_x 的元素均是唯一的,这种情况可以提升计算的速度。默认值为 False。

  • invert (bool,可选) - 是否输出反转的结果。如果为 True,表示将结果反转。默认值为 False。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

Tensor,输出的 tensor 与输入 x 形状相同。

代码示例

>>> import paddle
>>> paddle.set_device('cpu')
>>> x = paddle.to_tensor([-0., -2.1, 2.5, 1.0, -2.1], dtype='float32')
>>> test_x = paddle.to_tensor([-2.1, 2.5], dtype='float32')
>>> res = paddle.isin(x, test_x)
>>> print(res)
Tensor(shape=[5], dtype=bool, place=Place(cpu), stop_gradient=True,
[False, True, True, False, True])

>>> x = paddle.to_tensor([-0., -2.1, 2.5, 1.0, -2.1], dtype='float32')
>>> test_x = paddle.to_tensor([-2.1, 2.5], dtype='float32')
>>> res = paddle.isin(x, test_x, invert=True)
>>> print(res)
Tensor(shape=[5], dtype=bool, place=Place(cpu), stop_gradient=True,
[True, False, False, True, False])

>>> # Set `assume_unique` to True only when `x` and `test_x` contain unique values, otherwise the result may be incorrect.
>>> x = paddle.to_tensor([0., 1., 2.]*20).reshape([20, 3])
>>> test_x = paddle.to_tensor([0., 1.]*20)
>>> correct_result = paddle.isin(x, test_x, assume_unique=False)
>>> print(correct_result)
Tensor(shape=[20, 3], dtype=bool, place=Place(cpu), stop_gradient=True,
[[True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False],
 [True , True , False]])

>>> incorrect_result = paddle.isin(x, test_x, assume_unique=True)
>>> print(incorrect_result)
Tensor(shape=[20, 3], dtype=bool, place=Place(gpu:0), stop_gradient=True,
[[True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , True ],
 [True , True , False]])