numpy实现二维list z-sore归一化

(2021年12月22日更新)

其实可以直接这样:

zscored_values=(values-np.mean(values))/np.std(values)

因为numpy torch等框架带有“传播”功能。

(以下是原来的文章)

搜了一顿也没有用numpy实现的,都是直接用学习框架实现好的函数。

我把z-score转化成了np的矩阵运算。

    def Normalize(raw_list):
        np_data=np.array(raw_list)
        length=len(raw_list)
        #列均值
        means=np.mean(np_data,axis=0)
        #列标准差
        sigmas=np.std(np_data,axis=0)
        #z-score转化成矩阵运算
        mean_matrix=np.tile(means,(length,1))
        sigma_metrix=np.tile(sigmas,(length,1))
        np_data=(np_data-mean_matrix)/sigma_matrix

        return np_data

拿出其中一个维度验证一下。

    before=np.random.normal(loc=5,scale=5,size=1000)
    before=np.tile(before.reshape(-1,1),(1,2))
    print(before.shape)
    after=Normalize(before)
    # print(before.shape)
    # print(after.shape)

    plt.hist(before[:,0])
    plt.show()
    plt.hist(after[:,0])
    plt.show()

           

行,概率密度函数看上去不变。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值