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

如何用Numpy数组第二列直方图归一化第一列直方图结果?

Numpy实现列计数归一化的简便方法

先把你的输入转换成numpy数组:

import numpy as np

arr = np.array([
    ['aa', '1'],
    ['ab', '1'],
    ['ab', '1'],
    ['ba', '2'],
    ['ba', '2']
], dtype=str)

可以用以下步骤快速实现需求:

  • 第一步:关联第一列元素与第二列分组
    用np.unique获取第一列的唯一值、计数,同时记录每个唯一值对应的第二列分组:

    col1_vals, col1_indices, col1_counts = np.unique(arr[:, 0], return_inverse=True, return_counts=True)
    group_labels = arr[col1_indices, 1]
    
  • 第二步:统计第二列分组的总计数
    直接对第二列做唯一值计数:

    group_vals, group_counts = np.unique(arr[:, 1], return_counts=True)
    
  • 第三步:计算归一化结果
    用numpy的索引匹配直接完成除法,避免循环:

    # 匹配每个第一列元素所属分组的总计数
    group_counts_matched = group_counts[np.searchsorted(group_vals, group_labels)]
    # 计算归一化值并和第一列值对应
    normalized_result = dict(zip(col1_vals, col1_counts / group_counts_matched))
    

运行后normalized_result的结果就是:

{'aa': 0.3333333333333333, 'ab': 0.6666666666666666, 'ba': 1.0}

这种方法用numpy矢量化操作完成,比手动遍历数组效率高,适合处理大规模数据。

内容的提问来源于stack exchange,提问作者PyariBilli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:15:32