溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中的np.random.permutation函數(shù)怎么使用

發(fā)布時間:2023-05-09 17:18:41 來源:億速云 閱讀:110 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“python中np.random.permutation函數(shù)怎么使用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“python中np.random.permutation函數(shù)怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

    一:函數(shù)介紹

    np.random.permutation() 總體來說他是一個隨機排列函數(shù),就是將輸入的數(shù)據(jù)進行隨機排列,官方文檔指出,此函數(shù)只能針對一維數(shù)據(jù)隨機排列,對于多維數(shù)據(jù)只能對第一維度的數(shù)據(jù)進行隨機排列。

    簡而言之:np.random.permutation函數(shù)的作用就是按照給定列表生成一個打亂后的隨機列表

    在處理數(shù)據(jù)集時,通??梢允褂迷摵瘮?shù)進行打亂數(shù)據(jù)集內(nèi)部順序,并按照同樣的順序進行標簽序列的打亂。

    二:實例

    2.1 直接處理數(shù)組或列表數(shù)

    import numpy as np
    
    data = np.array([1,2,3,4,5,6,7])
    a = np.random.permutation(data)
    b = np.random.permutation([5,0,9,0,1,1,1])
    print(a)
    print( "data:", data )
    print(b)

    python中的np.random.permutation函數(shù)怎么使用

    2.2 間接處理:不改變原數(shù)據(jù)(對數(shù)組下標的處理)

    label = np.array([1,2,3,4,5,6,7])
    a = np.random.permutation(np.arange(len(label)))
    print("Label[a] :" ,label[a] )

    python中的np.random.permutation函數(shù)怎么使用

    補:一般只能用于N維數(shù)組 只能將整數(shù)標量數(shù)組轉(zhuǎn)換為標量索引

    why?label1[a1]  label1是列表,a1是列表下標的隨機排列 但是! 列表結(jié)構(gòu)沒有標量索引 label1[a1]報錯

    label1=[1,2,3,4,5,6,7]
    print(len(label1))
    
    a1 = np.random.permutation(np.arange(len(label1)))#有結(jié)果
    
    print(a1)
    
    print("Label1[a1] :" ,label1[a1] )#這列表結(jié)構(gòu)沒有標量索引 所以會報錯

    python中的np.random.permutation函數(shù)怎么使用

    2.3 實例:鳶尾花數(shù)據(jù)中對鳶尾花的隨機打亂(可以直接用)

    from sklearn import svm
    from sklearn import datasets #sklearn 的數(shù)據(jù)集
    iris = datasets.load_iris()
    iris_x = iris.data
    iris_y = iris.target
    indices = np.random.permutation(len(iris_x))
    
    #此時 打亂的是數(shù)組的下標的排序
    print(indices)
    print(indices[:-10])#到倒數(shù)第10個為止
    print(indices[-10:])#最后10個
    
    # print(type(iris_x))   <class 'numpy.ndarray'>
    
    #9:1分類
    #iris_x_train = iris_x[indices[:-10]]#使用的數(shù)組打亂后的下標
    #iris_y_train = iris_y[indices[:-10]]
    #iris_x_test= iris_x[indices[-10:]]
    #iris_y_test= iris_y[indices[-10:]]

    數(shù)組下標 即標量索引的重新分布情況: 下標是0開始

    python中的np.random.permutation函數(shù)怎么使用

    讀到這里,這篇“python中np.random.permutation函數(shù)怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI