python数组随机打乱_对Python random模块打乱数组顺序的实例讲解
在我們使用一些數據的過程中,我們想要打亂數組內數據的順序但不改變數據本身,可以通過改變索引值來實現,也就是將索引值重新隨機排列,然后生成新的數組。功能主要由python中random模塊的sample()函數實現。
sample(population, k) method of random.Random instance
Chooses k unique random elements from a population sequence or set.
下面的代碼實現的是打亂iris數據,iris數據是網上下載的csv格式文件,相信大家不陌生的了,原始數據是三種鳶尾(iris)順序排列的,三種花分別是:setosa,versicolor 和 virginica ,記錄的數據有SepalLengthCm(花萼長度), SepalWidthCm(花萼寬度), PetalLengthCm(花瓣長度), PetalWidthCm (花瓣寬度)
在做聚類分析的時候曾經用到過iris數據,當然,如果安裝了scikit learn 模塊的話,可以通過
from sklearn import datasets
iris = datasets.load_iris()
獲取
下面的程序實現打亂iris的數據順序:
import pandas as pd
import random as rd # 導入random模塊,使用里面的sample函數
from pylab import *
iris = pd.read_csv('D:\\Iris.csv')
a1=reshape(iris['Id'],[150,1])
a2=reshape(iris['SepalLengthCm'],[150,1])
a3=reshape(iris['SepalWidthCm'],[150,1])
data=c_[a1,a2,a3]
idx=rd.sample(range(150),150)
iris = data[idx] # 打亂順序,這里只選取了花萼長度和寬度這兩個特征值
2017/7/10 updated
打亂順序的方法還可以使用random.shuffle(iterable),這樣會直接改變iterable的順序,shuffle 是洗牌的意思,顧名思義,需要注意的是random.shufle()函數沒有返回值,如果寫成
mylist = random.shuffle(list1)
將不會得到任何結果
以上這篇對Python random模塊打亂數組順序的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的python数组随机打乱_对Python random模块打乱数组顺序的实例讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河洛群侠传练级地点(如何评价单机游戏作品
- 下一篇: python axis 0_Python