You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Numpy按行统计1-10各值出现次数并生成指定格式计数数组

Numpy按行统计1~10数值出现次数的实现方法

你可以通过以下两种方式修改代码实现需求:


方案1:基于原有循环逻辑修改

保留你原来的np.unique实现逻辑,新增初始化全零结果数组,把每行的计数填充到对应数值的位置即可:

import numpy as np
np.random.seed(100)
arr = np.random.randint(1,11,size=(6, 10))

row, col = arr.shape
# 初始化6行10列的全零结果数组
res = np.zeros((row, 10), dtype=int)
for i in range(row):
    a, c = np.unique(arr[i], return_counts=True)
    # 数值x对应索引为x-1,将计数写入对应位置
    res[i, a-1] = c

print(res)

方案2:使用np.bincount简化实现

利用np.bincount专门统计整数出现次数的特性,配合np.apply_along_axis实现更简洁的向量化运算,性能更高:

import numpy as np
np.random.seed(100)
arr = np.random.randint(1,11,size=(6, 10))

# bincount默认统计从0开始的整数计数,minlength=11保证覆盖0~10的范围,取[1:]切片对应1~10的计数
res = np.apply_along_axis(lambda x: np.bincount(x, minlength=11)[1:], axis=1, arr=arr)

print(res)

两种方案的输出均为你需要的6行10列计数数组:

[[1 0 2 1 1 1 0 2 2 0]
 [2 1 3 0 1 0 1 0 1 1]
 [0 3 0 2 3 1 0 1 0 0]
 [1 0 2 1 0 1 0 2 1 2]
 [2 2 2 0 0 1 1 1 1 0]
 [1 1 1 1 1 2 0 0 2 1]]

内容的提问来源于stack exchange,提问作者Ahmed Mujtaba Jalil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:27:01