python - 如何在允许重复的情况下减少空间点的 numpy 数组并求和强度值

标签 python numpy

假设我有一个包含 [x,y,z,intensity] 数组的 numpy 数组:

MyArray=np.array([np.array([1,2,3,.75]),np.array([1,2,2,.32]),np.array([1,2,3,.88])])

当发生重复时,如何在对强度值求和的同时将数组减少为唯一点?

所以上面的最终结果看起来像:

EndArray=np.array([np.array([1,2,3,1.63]),np.array([1,2,2,.32])])

我正在考虑在 x、y、z 上使用 numpy.unique,但这会给我唯一性的整数计数,根本不考虑强度列。

很抱歉这里缺少代码,但老实说,我什至不知道从 np.unique 之外的哪里开始

最佳答案

被 NumPy 标记/处理 NumPy 数组,我们可以使用 np.unique 的新功能接受 axis 参数将 2D 数组作为组处理,为我们提供预期的输出,就像这样 -

In [51]: unq, tags = np.unique(MyArray[:,:3],axis=0, return_inverse=1)

In [52]: np.c_[unq,np.bincount(tags, MyArray[:,3])]
Out[52]: 
array([[ 1.  ,  2.  ,  2.  ,  0.32],
       [ 1.  ,  2.  ,  3.  ,  1.63]])

关于python - 如何在允许重复的情况下减少空间点的 numpy 数组并求和强度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018188/

相关文章:

python - 迭代 Python 字典时修改它

python - 该字段没有指定默认值,但为 NOT NULL

python - 在python中为3个变量绘制折线图

python - 按键切片字典列表时出错?

python - 将元素 append 到 numpy 数组中每个箭头的末尾

python - 取两个集合 'A' 和 'B' ,如何在 pandas 中创建一个集合 C= A 减去 B

python - 压缩 numpy 数组的有效方法(python)

python - 如何在Python中计算彩色图片中白色和黑色像素的数量?如何使用 numpy 计算总像素

python - 合并/平均比给定半径更近的邻居

python - 不正确的模式计算或者这是盐和胡椒?