首页 > 解决方案 > Python中有没有办法对未知形状数组的最低有效索引进行计算?

问题描述

我一直在尝试开发一些代码来对数组中的数据点进行某种计算并将其保存到新数组中。数据结构具有确定数量的维度,但最终维度(最不重要)始终是需要对其进行计算的维度。要保存的数组的维数比前 n - 1 维具有相同形状的原始数组少一个维数。现在的设置如下:

array = np.load(ARRAY_LOCATION)

r_shape = array.shape[0:-1]

m = mask       #mask is a masking vector of length n_bin
r = np.zeros( r_shape ) #create array of 0s without last index

对于一维情况,计算很简单,因为计算只进行一次(不需要 for 循环)。对于 2D 案例,我选择了这样的东西:

for i in np.arange( array.shape[0] ):
        r[i] = calculate_value( array[i][m == 0] )

3D 案例并不多涉及:

for i in np.arange( array.shape[0] ):
    for j in np.arange( array.shape[1] ):
        r[i, j] = calculate_value( array[i][j][m == 0] )

但是,我需要知道如何为 nD 执行此操作,其中 n 是在加载数组时确定的。因此,我认为我的r[i, j, k, ...]符号不会削减它,但我不知道我可以设置这些的另一种方法价值观。在实践中,我需要我的计算遍历所有可用的索引,直到“没有任何剩余”。

任何帮助都会很棒:)

标签: pythonarrays

解决方案


推荐阅读