python 打乱数组顺序,Python打乱二维数组顺序:个人使用经历
目录
我的需求背景:
发现问题:
解决方式:
我的需求背景:
两个分类标签的数据独立成组,使用np.vstack拼接到一起后,希望打乱行的顺序。
#合并SD和USD标签的数据
finalData = np.vstack((data0,data1))
finalData.shape
(1518, 23)
初步尝试:
网络搜索后,使用random.shuffle()貌似可以满足需求。参考:Python3 shuffle() 函数
import random
random.shuffle(finalData)
print(finalData)
但个人使用过程发现存在一些问题。
发现问题:
1、存在某些行重复出现的问题。我是23列的数据,最后一列为数据标签(0,1),实验数据本身的重复可能性较小。重复详情见图。
2、从上图不难发现,数据标签并不是我期待的结果:在0-1大致五五开的情况下(在前后两部分),前30行都是0标签而没有1标签。
综上推测:random.shuffle在二维数组中的随机,可能是在新数组的每一行,以正态概率或其他方式随机选取原数组的一个Index写入。此处验证留空,可查询源码了解。
上述问题不知道是否可以通过设置参数解决。
解决方式:
既然random.shuffle()存在问题,那么是否有其他方式进行数组顺利的打乱呢?
1、python自带的random和numpy的random。
虽然平时有用random函数,但没有关心过python自带的random和np的random有什么不同。数组以外的差别可以参考简书:【python】random与numpy.random
我这里希望打乱二维数组顺序,关注到np.random中也有上文所用的函数,既然操作是array又有自家的函数,不妨一试。
#打乱数组顺序
np.random.shuffle(finalData)
这个feel感觉就棒棒哒了。
2、 np.random.shuffle(x)和np.random.permutation(x):是否返回新数组?
numpy.random.shuffle(x)函数通过混洗其内容来就地修改序列,返回值None;numpy.random.permutation(x)会返回一个新的数组而不修改原数组。
至此个人的需求已得到满足,虽还有更多值得探究的细节,但需求产生时再来追究,问题驱动学习,嘿嘿。
python 打乱数组顺序,Python打乱二维数组顺序:个人使用经历相关推荐
- php打乱数组顺序(含二维数组)
php打乱数组顺序(含二维数组) 最近在做一个考试小程序的Api接口,其中一个是需要将试题列表打乱顺序,都知道,从数据库搜索出来的列表通常为数组的形式,所以我面临的问题就变成了 如何打乱数组顺序. 随 ...
- python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法
Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...
- js一维数组,api,二维数组
1.定义数组 空数组 1.数组字面量:[ ] var 变量名 = [ ]://定义一个空的数组把数组保存到变量中 2.新的数组对象 var 变量名 = new Array()://定义一个新的数组对象 ...
- java二维数组扫雷,C语言二维数组实现扫雷游戏
#include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+' ...
- c语言二维数组 ppt,C语言二维数组与指针.ppt
C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...
- 数组--如何通过【二维数组+稀疏数组】实现五子棋盘,并且保存记忆功能?
一.应用场景 通过Java + 二维数组 + 稀疏数组实现一个五子棋盘功能,并且具有保存记忆功能. 二.实现原理 2.1 二维数组 大家都知道一维数组,不过一维数组的属于线性结构,而二维数组则属于非线 ...
- 【C语言数组】一、二维数组冒泡排序
目录 1. 一维数组的创建和初始化 1.1 一维数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...
- 减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现
文章目录 基本介绍 应用实例 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外) ...
- java 二维数组位置_java 找到二维数组指定元素的位置
这个是代码编译时没有问题运行出错.主要功能是首先将txt格式文本导入二维数组,然后在二维数组中查找指定元素的行号和列号.运行结果出错显示为:importjava.util.*;importjava.i ...
最新文章
- QNX Hypervisor管理程序
- 对java多线程里Synchronized的思考
- vs实现python c扩展模块
- 爬虫那些事儿-- 简介
- java中的命名空间_XPath与Java中的命名空间
- php 农历日历,php下实现农历日历的代码_php实例
- conda: command not found
- 自定义MyBatis拦截器
- 阶乘 java_Java 实例 – 阶乘
- 三、Linux 教程-基础命令(181~完)
- arm linux vi键盘错乱,Ubuntu Server 18.04安装后vi命令解决键盘错乱方法和wifi连接之后不能上网...
- 2016 知识点汇总 mindmap
- 由配置Rabbitmq多virtual_host失效认识@Qualifier
- 微信小程序播放背景音乐,关闭背景音乐的操作
- 七天学会「股票数据分析软件」的开发(上)
- GoDaddy SSL证书制作和安装
- 从基础概念到实现,小白如何快速入门PyTorch
- python 画天线方向图
- 涨停股该怎么分析啊,买涨停股有什么样的方法
- 零成本“即用即走”的小程序,为什么没能留住用户
热门文章
- Unified Functional Testing12.02(UFT)安装教程
- (五)RabbitMQ管理
- 讲课系列——评价政策模型
- 访客留言簿/日志——允许人们添加评论或者日记,可以设置开启/关闭评论,并且可以记录下每一条目的时间。也可以做成喊话器。
- 第二遍罗塞塔学习总结
- [附源码]JAVA+ssm基于远程协作的汽车故障诊断系统(程序+Lw)
- 时​钟​周​期​及​秒​(​s​)​ ​毫​秒​(​m​s​)​ ​微​秒​(​μ​s​)​ ​纳​秒​(​n​s​)​ ​皮​秒​(​p​s​)​之​间​转​换
- 本地计算机无法启动dhcp服务,dhcp client无法启动怎么办?dhcp client服务启动的方法...
- NRF2401P 多通道通讯
- 计算机报0x0000000a,win7蓝屏代码0x0000000a是什么意思 怎么解决