脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python中np.random.permutation函数实例详解

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

2023-04-03 11:50<阿睿> Python

np.random.permutation是numpy中的一个函数,它可以将一个数组中的元素随机打乱,返回一个打乱后的新数组,下面这篇文章主要给大家介绍了关于python中np.random.permutation函数的相关资料,需要的朋友可以参考下

一:函数介绍

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

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

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

二:实例

2.1 直接处理数组或列表数

?
1
2
3
4
5
6
7
8
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函数实例详解

2.2 间接处理:不改变原数据(对数组下标的处理)

?
1
2
3
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函数实例详解

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

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

?
1
2
3
4
5
6
7
8
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] )#这列表结构没有标量索引 所以会报错

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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函数的文章就介绍到这了,更多相关python np.random.permutation函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_45288176/article/details/125117426

延伸 · 阅读

精彩推荐
  • Pythonpython imutils包基本概念及使用

    python imutils包基本概念及使用

    python imutils包可以很简洁的调用opencv接口,轻松实现图像的平移,旋转,缩放,骨架化等操作,对python imutils包基本概念及使用方法感兴趣的朋友一起看看吧...

    集电极10342021-12-10
  • Python如何使用NLP库解析Python中的文本

    如何使用NLP库解析Python中的文本

    针对在Python中解析文本的需求,本文介绍了使用Google Colab的强大云服务功能,使用Transformer库去完成繁重的任务,以及选用各种在线解析工具的各种模式。...

    51CTO技术栈9762022-11-09
  • Python使用Python内置的模块与函数进行不同进制的数的转换

    使用Python内置的模块与函数进行不同进制的数的转换

    这篇文章主要介绍了使用Python内置的模块与函数进行不同进制的数的转换的方法,Python也使得读取纯二进制文件内容非常方便,需要的朋友可以参考下...

    像风一样的自由4842020-08-16
  • Python用Python实现随机森林算法的示例

    用Python实现随机森林算法的示例

    这篇文章主要介绍了用Python实现随机森林算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    流风,飘然的风2182020-12-04
  • Python详解使用 pyenv 管理多个版本 python 环境

    详解使用 pyenv 管理多个版本 python 环境

    本篇文章主要介绍了详解使用 pyenv 管理多个版本 python 环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    kongxx5622020-12-12
  • Pythonpython基础之文件操作实例

    python基础之文件操作实例

    这篇文章主要介绍了python文件操作,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下...

    qianqqqq_lu5532022-02-17
  • Python使用python实现rsa算法代码

    使用python实现rsa算法代码

    RSA算法是一种非对称加密算法,是现在广泛使用的公钥加密算法,主要应用是加密信息和数字签名。本文给大家介绍python实现rsa算法代码,感兴趣的朋友一...

    zhubinqiang13042020-08-12
  • Pythonpython3库numpy数组属性的查看方法

    python3库numpy数组属性的查看方法

    下面小编就为大家分享一篇python3库numpy数组属性的查看方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    giveup_skyland8052021-02-01