在 2d numpy 中求和行 [重复]

Posted

技术标签:

【中文标题】在 2d numpy 中求和行 [重复]【英文标题】:Sum rows in 2d numpy [duplicate] 【发布时间】:2021-02-20 05:31:32 【问题描述】:

假设给定以下 2d numpy:

myNP = np.array([[5., 2., 1.],
                [3., 3., 3.],
                [3., 3., 3.]])

必须找到每一行中每个点相对于行总和的权重。

参考上面的例子,预期的结果需要是:

([[0.625, 0.25 , 0.125],
  [0.333, 0.333, 0.333],
  [0.333, 0.333, 0.333]])

【问题讨论】:

确实提供了解决方案 myNP/myNP.sum(axis=1).reshape(-1,1) 【参考方案1】:

试试这个:

myNP_weight = (myNP/myNP.sum(axis=1).reshape(-1,1)).round(3)

或者

myNP_weight = (myNP/myNP.sum(axis=1)[:, None]).round(3)

输出

>>> print(myNP_weight)
array([[0.625, 0.25 , 0.125],
       [0.333, 0.333, 0.333],
       [0.333, 0.333, 0.333]])

【讨论】:

添加了答案。让我知道它对你有用。【参考方案2】:

sum 函数完全符合您的需要。您只需要指定轴。在您的情况下,myNP.sum(axis=1) 应该可以解决问题

【讨论】:

以上是关于在 2d numpy 中求和行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

替换 2D numpy 数组中的连续重复项

选择2D NumPy数组的“角落”元素[重复]

C# 合并重复列表项并将它们的第二个值求和(2D 对象列表)

使用数组索引的numpy数组的2D索引[重复]

将 2D NumPy 数组元素相乘并求和

如何检查html表是不是在js中重复行并对输入求和而不是插入另一行?