向量化 numpy bincount

2024-05-09

我有一个 2d numpy 数组。,A我要申请np.bincount()到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A.

我的问题是 np.bincount() 是一个采用一维数组的函数。它不是像这样的数组方法B = A.max(axis=1)例如。

有没有更 pythonic/numpythic 的方法来生成这个B除了令人讨厌的 for 循环之外的数组?

import numpy as np

states = 4
rows = 8
cols = 4

A = np.random.randint(0,states,(rows,cols))
B = np.zeros((states,cols))

for x in range(A.shape[1]):
    B[:,x] =  np.bincount(A[:,x])

使用与中相同的哲学this post https://stackoverflow.com/a/40588862/3293881,这是一种矢量化方法 -

m = A.shape[1]    
n = A.max()+1
A1 = A + (n*np.arange(m))
out = np.bincount(A1.ravel(),minlength=n*m).reshape(m,-1).T
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向量化 numpy bincount 的相关文章

随机推荐