我需要找到一种方法来执行此操作,我有一个形状为
[ batch_size , 150 , 1 ]
的数组,代表了batch_size个整数序列,每个序列都是150个元素长,但是在每个序列中都添加了很多零,以使所有序列长度相同。我需要找到每个序列的最后一个非零元素,并将其放入一个数组中,该数组的形状必须为[ batch_size ]。我会尝试以下方法:
last = []
for j in range(0 , inputs.shape[0] ):
tnew = np.array( inputs[j][:][0] )
tnew = np.trim_zeros(tnew )
last.append( int(tnew[-1]) )
但我不知道是否有更好的方法来完成这个操作,而无需像那样循环遍历每个元素。
感谢您的答案和帮助。
测试数据
a = np.array([[[1],[0],[0],[0],[0],[0]],
[[1],[2],[0],[0],[0],[0]],
[[1],[2],[3],[0],[0],[0]],
[[1],[2],[3],[4],[0],[0]],
[[1],[2],[3],[4],[5],[0]]])