numpy實現二維list z-sore歸一化

搜了一頓也沒有用numpy實現的,都是直接用學習框架實現好的函數。

我把z-score轉化成了np的矩陣運算。

    def Normalize(raw_list):
        np_data=np.array(raw_list)
        length=len(raw_list)
        #列均值
        means=np.var(np_data,axis=0)
        #列標準差
        sigmas=np.std(np_data,axis=0)
        #z-score轉化成矩陣運算
        mean_metrix=np.tile(means,(length,1))
        sigma_metrix=np.tile(sigmas,(length,1))
        np_data=(np_data-mean_metrix)/sigma_metrix

        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()

           

行,概率密度函數看上去不變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章