python中np.random.permutation函數(shù)實(shí)例詳解
一:函數(shù)介紹
np.random.permutation() 總體來說他是一個隨機(jī)排列函數(shù),就是將輸入的數(shù)據(jù)進(jìn)行隨機(jī)排列,官方文檔指出,此函數(shù)只能針對一維數(shù)據(jù)隨機(jī)排列,對于多維數(shù)據(jù)只能對第一維度的數(shù)據(jù)進(jìn)行隨機(jī)排列。
簡而言之:np.random.permutation函數(shù)的作用就是按照給定列表生成一個打亂后的隨機(jī)列表
在處理數(shù)據(jù)集時,通??梢允褂迷摵瘮?shù)進(jìn)行打亂數(shù)據(jù)集內(nèi)部順序,并按照同樣的順序進(jìn)行標(biāo)簽序列的打亂。
二:實(shí)例
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)

2.2 間接處理:不改變原數(shù)據(jù)(對數(shù)組下標(biāo)的處理)
label = np.array([1,2,3,4,5,6,7])
a = np.random.permutation(np.arange(len(label)))
print("Label[a] :" ,label[a] )
補(bǔ):一般只能用于N維數(shù)組 只能將整數(shù)標(biāo)量數(shù)組轉(zhuǎn)換為標(biāo)量索引
why?label1[a1] label1是列表,a1是列表下標(biāo)的隨機(jī)排列 但是! 列表結(jié)構(gòu)沒有標(biāo)量索引 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)沒有標(biāo)量索引 所以會報錯
2.3 實(shí)例:鳶尾花數(shù)據(jù)中對鳶尾花的隨機(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ù)組的下標(biāo)的排序 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ù)組打亂后的下標(biāo) #iris_y_train = iris_y[indices[:-10]] #iris_x_test= iris_x[indices[-10:]] #iris_y_test= iris_y[indices[-10:]]????
數(shù)組下標(biāo) 即標(biāo)量索引的重新分布情況: 下標(biāo)是0開始

總結(jié)
到此這篇關(guān)于python中np.random.permutation函數(shù)的文章就介紹到這了,更多相關(guān)python np.random.permutation函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python統(tǒng)計字符串中指定字符出現(xiàn)次數(shù)的方法
這篇文章主要介紹了python統(tǒng)計字符串中指定字符出現(xiàn)次數(shù)的方法,涉及Python中count函數(shù)的使用技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04
Django后端發(fā)送小程序微信模板消息示例(服務(wù)通知)
今天小編就為大家分享一篇Django后端發(fā)送小程序微信模板消息示例(服務(wù)通知),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
基于Python實(shí)現(xiàn)人臉識別相似度對比功能
人臉識別技術(shù)是一種通過計算機(jī)對人臉圖像進(jìn)行分析和處理,從而實(shí)現(xiàn)自動識別和辨認(rèn)人臉的技術(shù),隨著計算機(jī)視覺和模式識別領(lǐng)域的快速發(fā)展,人臉識別技術(shù)取得了長足的進(jìn)步,本文給大家介紹了基于Python實(shí)現(xiàn)人臉識別相似度對比功能,感興趣的朋友可以參考下2024-01-01
Python數(shù)據(jù)可視化JupyterNotebook繪圖生成高清圖片
這篇文章主要為大家介紹了Python數(shù)據(jù)可視化中如何利用Jupyter Notebook繪圖生成高清圖片,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
plt.figure()參數(shù)使用詳解及運(yùn)行演示
這篇文章主要介紹了plt.figure()參數(shù)使用詳解及運(yùn)行演示,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python?Pygame實(shí)戰(zhàn)之歡樂打地鼠游戲
打地鼠是一款比較經(jīng)典的敏捷類游戲,我們可以在許多商場門口看到這類游戲機(jī),在電腦和手機(jī)上也有許多類似的游戲。本文將用Python中的Pygame庫實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-02-02
比較詳細(xì)Python正則表達(dá)式操作指南(re使用)
Python 1.5之前版本則是通過 regex 模塊提供 Emecs 風(fēng)格的模式。Emacs 風(fēng)格模式可讀性稍差些,而且功能也不強(qiáng),因此編寫新代碼時盡量不要再使用 regex 模塊,當(dāng)然偶爾你還是可能在老代碼里發(fā)現(xiàn)其蹤影2008-09-09

