python - 对 2D 数组进行迭代以索引 3D 数组,使其更具 Python 风格并跳过零值
问题描述
我有一个 2D 值数组和一个对应值的 3D 数组。2D 数组中数字的值是 3D 数组中第一个维度的索引,而 2D 数组中的值的索引与 3D 数组中最后两个维度的索引相同。
此外,如果二维数组中的值为 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 的方式来实现相同的行为,这可能会导致加速。
解决方案
推荐阅读
- excel - 更改内容时在 Excel 中打印动态值 - 空白除外
- ios - How to remove bottom border of navigation bar with large title?
- vue.js - vue-cli-service 构建错误。模块构建失败。类型错误:this[NS] 不是函数
- amazon-web-services - 每个环境单独的 Dockerrun.aws.json
- python-3.x - step 和 num_epochs 的区别
- node.js - TypeError:套接字不是构造函数
- java - SwingUtilities 方法参数包含整个方法体?
- mysql - 从 .ibd 文件中恢复数据和表
- python - 绘制色标反向
- c# - 在终端中居中 Unicode 字符