目录

我的需求背景:

发现问题:

解决方式:

我的需求背景:

两个分类标签的数据独立成组,使用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打乱二维数组顺序:个人使用经历相关推荐

  1. php打乱数组顺序(含二维数组)

    php打乱数组顺序(含二维数组) 最近在做一个考试小程序的Api接口,其中一个是需要将试题列表打乱顺序,都知道,从数据库搜索出来的列表通常为数组的形式,所以我面临的问题就变成了 如何打乱数组顺序. 随 ...

  2. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  3. js一维数组,api,二维数组

    1.定义数组 空数组 1.数组字面量:[ ] var 变量名 = [ ]://定义一个空的数组把数组保存到变量中 2.新的数组对象 var 变量名 = new Array()://定义一个新的数组对象 ...

  4. java二维数组扫雷,C语言二维数组实现扫雷游戏

    #include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+' ...

  5. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

  6. 数组--如何通过【二维数组+稀疏数组】实现五子棋盘,并且保存记忆功能?

    一.应用场景 通过Java + 二维数组 + 稀疏数组实现一个五子棋盘功能,并且具有保存记忆功能. 二.实现原理 2.1 二维数组 大家都知道一维数组,不过一维数组的属于线性结构,而二维数组则属于非线 ...

  7. 【C语言数组】一、二维数组冒泡排序

    目录 1. 一维数组的创建和初始化 1.1 一维数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 ...

  8. 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...

  9. 减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现

    文章目录 基本介绍 应用实例 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外) ...

  10. java 二维数组位置_java 找到二维数组指定元素的位置

    这个是代码编译时没有问题运行出错.主要功能是首先将txt格式文本导入二维数组,然后在二维数组中查找指定元素的行号和列号.运行结果出错显示为:importjava.util.*;importjava.i ...

最新文章

  1. QNX Hypervisor管理程序
  2. 对java多线程里Synchronized的思考
  3. vs实现python c扩展模块
  4. 爬虫那些事儿-- 简介
  5. java中的命名空间_XPath与Java中的命名空间
  6. php 农历日历,php下实现农历日历的代码_php实例
  7. conda: command not found
  8. 自定义MyBatis拦截器
  9. 阶乘 java_Java 实例 – 阶乘
  10. 三、Linux 教程-基础命令(181~完)
  11. arm linux vi键盘错乱,Ubuntu Server 18.04安装后vi命令解决键盘错乱方法和wifi连接之后不能上网...
  12. 2016 知识点汇总 mindmap
  13. 由配置Rabbitmq多virtual_host失效认识@Qualifier
  14. 微信小程序播放背景音乐,关闭背景音乐的操作
  15. 七天学会「股票数据分析软件」的开发(上)
  16. GoDaddy SSL证书制作和安装
  17. 从基础概念到实现,小白如何快速入门PyTorch
  18. python 画天线方向图
  19. 涨停股该怎么分析啊,买涨停股有什么样的方法
  20. 零成本“即用即走”的小程序,为什么没能留住用户

热门文章

  1. Unified Functional Testing12.02(UFT)安装教程
  2. (五)RabbitMQ管理
  3. 讲课系列——评价政策模型
  4. 访客留言簿/日志——允许人们添加评论或者日记,可以设置开启/关闭评论,并且可以记录下每一条目的时间。也可以做成喊话器。
  5. 第二遍罗塞塔学习总结
  6. [附源码]JAVA+ssm基于远程协作的汽车故障诊断系统(程序+Lw)
  7. 时​钟​周​期​及​秒​(​s​)​ ​毫​秒​(​m​s​)​ ​微​秒​(​μ​s​)​ ​纳​秒​(​n​s​)​ ​皮​秒​(​p​s​)​之​间​转​换
  8. 本地计算机无法启动dhcp服务,dhcp client无法启动怎么办?dhcp client服务启动的方法...
  9. NRF2401P 多通道通讯
  10. 计算机报0x0000000a,win7蓝屏代码0x0000000a是什么意思 怎么解决