我认为这是一个非常简单的问题,但我无法找到答案。
我有一个数组:
array([ 62519, 261500, 1004836, ... , 0, 0])
我想将其转换为正态分布,最小值为0,最大值为1。
有什么建议吗?我在看sklearn.preprocess.normalize,但无法让它为我工作。
目的是我正在创建一个带有numpy的散点图,并希望使用第三个变量为每个点着色。然而,颜色必须在0和1之间,因为我有一些奇怪的异常值,我认为正态分布将是一个良好的开端。
如果这没有任何意义,请告诉我。谢谢&欢呼声。
答案 0 :(得分:5)
哦,我是一个白痴,我只是想标准化,只能做z = (x- mean)/std
。遗憾。
答案 1 :(得分:1)
我不建议使用标准正态分布进行标准化,请考虑使用frobenius / l2:
normalized_z = z / np.linalg.norm(z)
normalized_z = z / math.sqrt(max(sum(z**2), 1e-12)) # L2: Matrix Norm
normalized_z = tf.nn.l2_normalize(z,0)