我有一个数组,其中第一行是一个类别,第二行是一个子类别,第三行是我想要压缩的值。
我正在尝试重新排列数组 A
[[ 4 4 19 19 20 21 25 26 26 27 27 29] # category
[ 1 2 1 2 1 2 1 1 2 1 2 2] # subcategory
[ 1 1 3 3 1 2 1 1 1 2 2 2]] # count
进入数组B
[[ 4 19 20 21 25 26 27 29] # category
[ 1 3 1 0 1 1 2 0] # subcategory 1 count
[ 1 3 0 2 0 1 2 2]] # subcategory 2 count
我已经做到了
categories, subcategories = np.unique(A[0], return_counts=True)
B = np.zeros((np.amax(subcategories) + 1, A[0].size))
B[0] = categories
但不确定如何填充其余部分。有什么想法吗?
最佳答案
这应该可以解决问题:
cat_index = np.searchsorted(categories, A[0])
B[A[1], cat_index] = A[2]
关于python - 将值转换为 NumPy 数组中的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156758/