我有一个 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(使用前将#替换为@)