【发布时间】:2016-01-06 17:37:32
【问题描述】:
这里的应用程序正在寻找“云基础”,但原则适用于任何地方。我有一个 numpy 屏蔽 3-D 数组(我们会说它对应于尺寸为 z、y、x 的 3-D 网格框),其中我已经屏蔽了值小于 0.1 的所有点。我想找到的是,在每个 x,y 点,未被屏蔽的最低 z 点索引(不是 z 中的最小值,最小 z 坐标)是多少。我可以想到一些简单的方法来做到这一点,例如:
for x points:
for y points:
minz=-1
for z points:
if x,y,z is not masked:
minz = z
break
但是,这似乎真的很低效,我相信有一种更有效或更 Pythonic 的方式来做到这一点。我在这里错过了什么?
编辑:我不需要使用掩码数组,但这似乎是提出问题的最简单方法 - 我可以找到某个特定条件下的最低点不使用掩码数组的阈值。
编辑 2: 我正在寻找的想法(以 z=0 为最低点):
input:
[[[0,1],
[1,5]],
[[3,3],
[2,4]],
[[2,1],
[4,9]]]
threshold: val >=3
output:
[[1,1],
[2,0]]
【问题讨论】:
-
在屏蔽后没有
z的 (x,y) 案例输出什么? -
一些诸如 -1 之类的区分符会起作用——只要注意到缺少数据并且我可以相应地绘制。
-
不应该输出
[[1,1],[2,1]]而不是Edit 2吗? -
不 - 我正在寻找 z 中的最低点 - 不是最低值 - 很抱歉造成混淆。输出是正确的,我将进一步澄清问题
标签: python arrays python-3.x numpy