open3d.core.Tensor
中的 nonzero
方法返回一个张量中非零元素的索引。
open3d.core.Tensor.nonzero()
该方法没有任何参数。
nonzero()
方法返回一个 int64
类型的 open3d.core.Tensor
对象,其中包含输入张量中非零元素的索引。返回的张量中的每一行代表一个非零值的索引,每一列代表输入张量的维度。
import open3d.core as o3c
import numpy as np
# 创建一个 3x3x3 的张量
t = o3c.Tensor(np.array([[[0, 1, 0], [2, 0, 0], [0, 0, 3]],
[[0, 4, 0], [5, 6, 0], [0, 7, 8]],
[[9, 0,10], [0,11,12], [0,13, 0]]]))
# 打印张量中非零元素的索引
print(t.nonzero())
输出:
[[0 1 1]
[0 1 2]
[0 2 2]
[1 0 1]
[1 1 0]
[1 1 1]
[1 2 1]
[1 2 2]
[2 0 0]
[2 0 2]
[2 1 1]
[2 2 1]]
在上面的示例中,输入张量 t
是一个 3x3x3 的张量。nonzero()
方法返回一个 int64
类型的张量对象,包含输入张量中每个非零元素的索引。 打印输出结果可以看到,输入张量中非零元素的索引被包含在返回的张量对象中。