【发布时间】:2015-08-18 14:44:25
【问题描述】:
我有一个 numpy 数组,其中包含具有以下格式 (x, y, z, w) 的 4 维向量
数组的大小是 4 x N。现在,我拥有的数据是我拥有 (x, y, z) 空间位置的位置,而 w 在该位置保存一些特定的测量值。现在,可能有多个与 (x, y, z) 位置相关的测量值(以浮点数测量)。
我想做的是过滤数组,这样我得到一个新数组,在其中我得到与每个 (x, y, z) 位置对应的最大测量值。
所以如果我的数据是这样的:
x, y, z, w1
x, y, z, w2
x, y, z, w3
如果 w1 大于 w2 和 w3,过滤后的数据将是:
x, y, z, w1
更具体地说,假设我有如下数据:
[[ 0.7732126 0.48649481 0.29771819 0.91622924]
[ 0.7732126 0.48649481 0.29771819 1.91622924]
[ 0.58294263 0.32025559 0.6925856 0.0524125 ]
[ 0.58294263 0.32025559 0.6925856 0.05 ]
[ 0.58294263 0.32025559 0.6925856 1.7 ]
[ 0.3239913 0.7786444 0.41692853 0.10467392]
[ 0.12080023 0.74853649 0.15356663 0.4505753 ]
[ 0.13536096 0.60319054 0.82018125 0.10445047]
[ 0.1877724 0.96060999 0.39697999 0.59078612]]
这应该返回
[[ 0.7732126 0.48649481 0.29771819 1.91622924]
[ 0.58294263 0.32025559 0.6925856 1.7 ]
[ 0.3239913 0.7786444 0.41692853 0.10467392]
[ 0.12080023 0.74853649 0.15356663 0.4505753 ]
[ 0.13536096 0.60319054 0.82018125 0.10445047]
[ 0.1877724 0.96060999 0.39697999 0.59078612]]
【问题讨论】:
-
相同 (x,y,z) 位置的条目是否总是连续的,就像在您的示例数据中一样,还是会分散?您在实践中将有多少条目?
-
不幸的是,他们可能分散了。他们永远不会超过 4 个。幸运的是,性能对此并不重要。
-
仅供参考:这被称为“分组”操作(参见pandas.pydata.org/pandas-docs/stable/groupby.html)。您按前三列分组,然后将最大函数应用于组。使用 pandas (pandas.pydata.org) 等库很容易做到这一点。
-
啊啊啊啊……我不知道熊猫。我会看看我是否能够成功使用它。感谢您的提示!