【发布时间】:2019-10-03 12:13:14
【问题描述】:
我相信有人提出了类似的问题,但没有一个涉及我所面临的问题。
我有一个形状为(H,W,L) 的数组 - 我必须遍历数组的每个实例以过滤出满足特定条件的值(它们的 x、y 位置)。 (比如val > t_r 和val < t_c) - 我必须对每个 K 值重复此操作。
例如:如果我们有一个形状为 (2,3,4) 的数组
A = [[[1,2,3,], [3,4,5,]],
[[6,7,8],[1,4,5]],
[[5,7,7],[9,4,3]],
[[1,2,4],[4,6,7]]]
假设第一个条件是val > 2,第二个条件是val < 6,并将(row, col) 值存储在N x 3 数组中。其中前两个值是'row','col',最后一个对应于层/第三维。
那么操作的预期输出应该类似于 -
output = [[0,2,0],[1,0,0],[1,0,0],[1,1,0],[1,2,0]....] 这将对应于从A[:,:,0] 过滤的值
我想到的一种方法是 - 使用 3 个 for 循环 - i,j,k 循环遍历每个元素,但我无法弄清楚确切的实现。我还想尽可能实现矢量化。我可以使用一些指导。
【问题讨论】:
-
只是一般性评论:您几乎不需要 NumPy 循环。
标签: python arrays python-3.x numpy