我有一个二维numpy数组
我的问题是np.bincount()是一个接受1d数组形式的函数。它不像
是否有更pythonic / numpythic的方法来生成这个B数组,而不是一个丑陋的for循环?
A
,我想对矩阵A
的每一列应用np.bincount()
,以生成另一个二维数组B
,该数组由原始矩阵A
的每列的bincounts组成。我的问题是np.bincount()是一个接受1d数组形式的函数。它不像
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])
m = A.shape[0] n = A.max()+1 A1 = A + (n*np.arange(m).reshape(m,1)) out = np.bincount(A1.ravel(),minlength=n*m).reshape(-1,n)
- Lala La