nonzero

paddle.nonzero ( x, as_tuple=False ) [源代码]

该OP返回输入 x 中非零元素的坐标。如果输入 xn 维,共包含 z 个非零元素,当 as_tuple = False 时, 返回结果是一个 shape 等于 [z x n]Tensor , 第 i 行代表输入中第 i 个非零元素的坐标;当 as_tuple = True 时, 返回结果是由 n 个大小为 z1-D Tensor 构成的元组,第 i1-D Tensor 记录输入的非零元素在第 i 维的坐标。

参数

  • x (Tensor)– 输入张量。

  • as_tuple (bool, optinal) - 返回格式。是否以 1-D Tensor 构成的元组格式返回。

返回

  • Tensor or tuple(1-D Tensor),数据类型为 INT64

代码示例

  1. import paddle
  2. x1 = paddle.to_tensor([[1.0, 0.0, 0.0],
  3. [0.0, 2.0, 0.0],
  4. [0.0, 0.0, 3.0]])
  5. x2 = paddle.to_tensor([0.0, 1.0, 0.0, 3.0])
  6. out_z1 = paddle.nonzero(x1)
  7. print(out_z1)
  8. #[[0 0]
  9. # [1 1]
  10. # [2 2]]
  11. out_z1_tuple = paddle.nonzero(x1, as_tuple=True)
  12. for out in out_z1_tuple:
  13. print(out)
  14. #[[0]
  15. # [1]
  16. # [2]]
  17. #[[0]
  18. # [1]
  19. # [2]]
  20. out_z2 = paddle.nonzero(x2)
  21. print(out_z2)
  22. #[[1]
  23. # [3]]
  24. out_z2_tuple = paddle.nonzero(x2, as_tuple=True)
  25. for out in out_z2_tuple:
  26. print(out)
  27. #[[1]
  28. # [3]]