在 numpy 中生成沿轴的计数?

问题描述 投票:0回答:1

我想知道是否有一种 numpy 方法可以使用多个轴执行以下操作:

所需输入:

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

所需输出:

np.array([[0,1,1,1,0,0],
          [0,0,0,0,1,2]])

第二个数组第二行中的 2 表示第一个数组第二行中存在 2 个 5。

如果没有,我就必须迭代。

python numpy mask array-broadcasting
1个回答
0
投票

假设

a
输入并使用广播:

out = (a[...,None] == np.arange(np.max(a)+1)).sum(axis=1)

输出:

array([[0, 1, 1, 1, 0, 0],
       [0, 0, 0, 0, 1, 2]])
© www.soinside.com 2019 - 2024. All rights reserved.