python中np.random.permutation函数实例详解

目录
  • 一:函数介绍
  • 二:实例
    • 2.1 直接处理数组或列表数
    • 2.2 间接处理:不改变原数据(对数组下标的处理)
    • 2.3 实例:鸢尾花数据中对鸢尾花的随机打乱(可以直接用)
  • 总结

一:函数介绍

np.random.permutation() 总体来说他是一个随机排列函数,就是将输入的数据进行随机排列,官方文档指出,此函数只能针对一维数据随机排列,对于多维数据只能对第一维度的数据进行随机排列。

简而言之:np.random.permutation函数的作用就是按照给定列表生成一个打乱后的随机列表

在处理数据集时,通常可以使用该函数进行打乱数据集内部顺序,并按照同样的顺序进行标签序列的打乱。

二:实例

2.1 直接处理数组或列表数

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 间接处理:不改变原数据(对数组下标的处理)

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

补:一般只能用于N维数组 只能将整数标量数组转换为标量索引

why?label1[a1]  label1是列表,a1是列表下标的随机排列 但是! 列表结构没有标量索引 label1[a1]报错

label1=[1,2,3,4,5,6,7]
print(len(label1))

a1 = np.random.permutation(np.arange(len(label1)))#有结果

print(a1)

print("Label1[a1] :" ,label1[a1] )#这列表结构没有标量索引 所以会报错

2.3 实例:鸢尾花数据中对鸢尾花的随机打乱(可以直接用)

from sklearn import svm
from sklearn import datasets #sklearn 的数据集
iris = datasets.load_iris()
iris_x = iris.data
iris_y = iris.target
indices = np.random.permutation(len(iris_x))

#此时 打乱的是数组的下标的排序
print(indices)
print(indices[:-10])#到倒数第10个为止
print(indices[-10:])#最后10个

# print(type(iris_x))   <class 'numpy.ndarray'>

#9:1分类
#iris_x_train = iris_x[indices[:-10]]#使用的数组打乱后的下标
#iris_y_train = iris_y[indices[:-10]]
#iris_x_test= iris_x[indices[-10:]]
#iris_y_test= iris_y[indices[-10:]]    

数组下标 即标量索引的重新分布情况: 下标是0开始

总结

到此这篇关于python中np.random.permutation函数的文章就介绍到这了,更多相关python np.random.permutation函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中np.random.permutation函数实例详解

    目录 一:函数介绍 二:实例 2.1 直接处理数组或列表数 2.2 间接处理:不改变原数据(对数组下标的处理) 2.3 实例:鸢尾花数据中对鸢尾花的随机打乱(可以直接用) 总结 一:函数介绍 np.random.permutation() 总体来说他是一个随机排列函数,就是将输入的数据进行随机排列,官方文档指出,此函数只能针对一维数据随机排列,对于多维数据只能对第一维度的数据进行随机排列. 简而言之:np.random.permutation函数的作用就是按照给定列表生成一个打乱后的随机列表 在

  • python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下面的示例,基本上总结了format函数在python的中所有用法 #通过位置 print '{0},{1}'.format('chuhao',20) print '{},{}'.format('chuhao',20) print '{1},{0},{1}'.format('chuhao',20) #

  • python 中split 和 strip的实例详解

     python 中split 和 strip的实例详解 一直以来都分不清楚strip和split的功能,实际上strip是删除的意思:而split则是分割的意思. python中strip() 函数和 split() 函数的理解,有需要的朋友可以参考下. splite 和strip 都是Python 对字符串的处理. splite 意为分割,划分. a='123456' a.split('3') 输出为 ['12', '456'] 可以看到,使用何种字符切割,该字符也被略去.例如这里的字符"3&

  • Python入门之三角函数sin()函数实例详解

    描述 sin()返回的x弧度的正弦值. 语法 以下是sin()方法的语法: importmath math.sin(x) 注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对象调用该方法. 参数 x--一个数值. 返回值 返回的x弧度的正弦值,数值在-1到1之间. 实例 以下展示了使用sin()方法的实例: #!/usr/bin/python import math print "sin(3) : ", math.sin(3) print "sin(

  • Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法. 参数 x -- 一个数值. 返回值 返回x弧度的正弦值,数值在 -1 到 1 之间. 实例 以下展示了使用 tan() 方法的实例: #!/usr/bin/python import math print "tan(3) : ", math.tan(3) pr

  • python中的二维列表实例详解

    1. 使用输入值初始化列表 nums = [] rows = eval(input("请输入行数:")) columns = eval(input("请输入列数:")) for row in range(rows): nums.append([]) for column in range(columns): num = eval(input("请输入数字:")) nums[row].append(num) print(nums) 输出结果为: 请

  • C++ 中const修饰虚函数实例详解

    C++ 中const修饰虚函数实例详解 [1]程序1 #include <iostream> using namespace std; class Base { public: virtual void print() const = 0; }; class Test : public Base { public: void print(); }; void Test::print() { cout << "Test::print()" << end

  • Vue中util的工具函数实例详解

    Vue中util的工具函数,下面通过实例代码给大家介绍的非常详细,具体代码如下所示: // 防抖函数 function debounce (fn, wait) { let t return () => { let context = this let args = arguments if (t) clearTimeout(t) t = setTimeout(() => { fn.apply(context, args) }, wait) } } function flatten (arr)

  • python中sklearn的pipeline模块实例详解

    最近在看<深度学习:基于Keras的Python实践(魏贞原)>这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代码如下: # 数据正态化,改进算法 steps = [] steps.append(('standardize', StandardScaler())) steps.append(('mlp', model)) pipeline = Pipeline(steps) kfold = KFold(n_splits

  • Python中的元组(Tuple)操作实例详解

    目录 引言 1.元组的创建&&访问 (1)元组的创建: (2)访问: 2.元组的修改&&删除 (1)元组的修改: (2)元组的删除: 3.元组的内置方法 4.将序列分解为单独的变量 5.实现优先级队列 总结 引言 在Python中,通过数据结构来保存项目中重要的数据信息.Python语言内置了多种数据结构,例如列表,元组,字典和集合等.本堂课我们来讲一讲Python中举足轻重的一大数据结构——元组. 在Python中,我们可以将元组看作一种特殊的列表.它与列表唯一的不同在于

随机推荐