Numpy - 行式标准化

时间:2018-05-14 04:30:36

标签: python arrays numpy

我一直致力于矩阵规范化问题,声明如下:

给定矩阵M,对其元素进行规范化,使得如果元素不为0,则每个元素用相应的列和求除。

cwsums = np.sum(class_matrix,axis=1)
cwsums = np.reciprocal(cwsums.astype(np.float32))
cwsums[cwsums == np.inf] = 0
## this is the problem
final_matrix = np.multiply(final_matrix, cwsums)

我可以构建一个互惠蒙版,我想在整个矩阵中应用,作为元素产品,但我似乎无法做到正确。谢谢!

1 个答案:

答案 0 :(得分:2)

(解决已编辑的问题)看起来您打算使用axis=0

对各行进行求和
i = 1 / class_matrix.sum(axis=0)
i[~np.isfinite(i)] = 0

class_matrix *= i