Pythonrandom 模块打乱数组顺序
在我们使⽤⼀些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本⾝,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后⽣成新的数组。功能主要由python中random模块的sample()函数实现。
下⾯的代码实现的是打乱iris数据,iris数据是⽹上下载的csv格式⽂件,相信⼤家不陌⽣的了,原始数据是三种鸢尾(iris)顺序排列的,三种花分别是:setosa ,versicolor
和 virginica ,记录的数据有SepalLengthCm (花萼长度), SepalWidthCm (花萼宽度), PetalLengthCm (花瓣长度), PetalWidthCm (花瓣宽度)
在做聚类分析的时候曾经⽤到过iris数据,当然,如果安装了scikit learn 模块的话,可以通过
获取
参考链接:
下⾯的程序实现打乱iris的数据顺序:
2017/7/10 updated
sample(population, k) method of random .Random instance
Chooses k unique random elements from a population sequence or set .
from sklearn import datasets
iris = datasets.load_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])
random在python中的意思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] # 打乱顺序,这⾥只选取了花萼长度和宽度这两个特征值
打乱顺序的⽅法还可以使⽤random.shuffle(iterable),这样会直接改变iterable的顺序,shuffle 是洗牌的意思,顾名思义,需要注意的是random.shufle()函数没有返回值,如果写成
mylist = random.shuffle(list1)
将不会得到任何结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论