在2D数组上进行迭代,以使用pythonic索引3D数组,并跳过零值

时间:2019-04-16 12:43:50

标签: python numpy indexing

我有一个2D值数组和一个3D对应值数组。 2D数组中数字的值是3D数组中第一个维度的索引,而2D数组中值的索引与后两个维度中3D数组中的索引相同。

此外,如果2D数组中的值为0,则不执行查找,并且该值应保持为0。

我编写了一个简单的脚本,其中包含两个循环,依次遍历行,然后遍历元素,如下所示:

c = np.array(np.random.rand(424,512)*10,dtype=np.int32)

mean_error_map = np.random.rand(42,424,512)

mean_map = np.zeros(shape=(c.shape[0],c.shape[1]))

for x,element_row in enumerate(c):

    if element_row.sum() == 0:
        continue

    for y,element in enumerate(element_row):

        if element == 0:
            continue

        mean_map[x,y] = mean_error_map[int(element),x,y]

我想知道是否有更多的pythonic / numpy方法来实现相同的行为,这可能会导致速度加快。

0 个答案:

没有答案