【发布时间】:2020-02-07 02:45:35
【问题描述】:
我有一个形状为 (i,j,k) 的 3 维 numpy ndarray,其中每一行都是多个类似大小的向量的数组。
我想提取一个 (i,k) 形状的数组,使得行的每个元素都包含其“j”向量组的第一个非零元素
所以基本上,给定一个数组,例如:
[
[
[0 , 10 , 12 , 0 , 4],
[0 , 0 , 13 , 1 , 2],
[12, 14 , 1 , 12 , 8]
],
[
[5 , 17 , 12 , 9 , 0],
[0 , 0 , 13 , 1 , 0],
[12, 14 , 1 , 12 , 8]
],
[
[0 , 0 , 19 , 0 , 9],
[2 , 6 , 13 , 0 , 2],
[12, 14 , 1 , 12 , 8]
]
]
我正在寻找类似的东西:
[
[12, 10, 12, 1, 4],
[5 , 17, 12, 9, 8],
[2 , 6, 19, 12, 9]
]
如何高效地查找结果?
import numpy as np
i,j,k = 3, 5, 10 #in real problem, these are pretty large
arr = np.random.randint(0, 10000, (i,j,k))
#????????
【问题讨论】: