python - 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, ...]
符号不会削减它,但我不知道我可以设置这些的另一种方法价值观。在实践中,我需要我的计算遍历所有可用的索引,直到“没有任何剩余”。
任何帮助都会很棒:)
解决方案
推荐阅读
- sql - 如果连续值不满足定义的条件,如何在查询中增加分组号?
- google-maps - 如何在 Flutter 中将折线添加到 Google 地图应用?
- python - 将编辑距离公式化为矩阵乘法
- angular - 来自返回多种类型的 ngrx 选择器的可观察类型错误
- python-3.x - 我们如何每天在 S3 Bucket 中检查 json 文件是否插入了新数据。仅获取插入的新数据的最佳方法是什么?
- windows - Visual Studio 中的自定义构建工具给了我“系统找不到指定的路径”错误
- ios - 必须返回 MPRemoteCommandHandlerStatus 或将完成处理程序作为第二个参数
- python-3.x - 无法单击硒中的下拉元素
- java - 我可以在没有相对路径的情况下在 project.ecore 中引用 java.ecore 吗?但改用模块引用?
- linux - 如何轻松诊断由于访问未映射的 mmap 区域而导致的问题?