对数组下面的数组截取_numpy数组不同索引方式的区别
numpy数组一般有三种索引方式:
- 基础索引与切片
- 布尔索引
- 神奇索引
三种方法都可截取原数组中的部分数据,但是使用的时候在本质上却有区别,尤其是在处理大量数据时,不弄清索引本质,会导致最后预测结果不准确。
基础索引与切片
先上代码:
import numpy as nparr = np.arange(25).reshape(5,5)
arr
arr1 = arr[:3]
arr1
arr1[1] = -1
arr
大家可以从上面的结果中发现,将arr前3行赋值给arr1,然后将arr1的第2行的数值改为-1,最后arr也发生了改变。原因是在基础索引中,返回的只是原数组的视图,而不是复制原数组,任何对于视图的修改,都会影响原数组。
解决方法,利用ndarray自带方法copy(),复制原数组。
arr = np.arange(25).reshape(5,5)
arr
arr1 = arr.copy()
arr1[1]=-1
arr
布尔索引
先上代码:
bool_ = [True,False,True,False,False]arr1 = arr[bool_]arr1
arr1[1]=-1arr
可以发现,布尔索引并未出现类似问题,因为利用布尔值索引时,总是生成数据的拷贝,所以改变选择数据,对原数组没有影响。
神奇索引
index = [3,4,1,2]arr1 = arr[index]arr1
arr1[1]=-1arr
神奇索引和布尔索引一样,选择数据的改变也不会影响原数组。
如果这些小Tips对你有帮助的话,求赞 求收藏
对数组下面的数组截取_numpy数组不同索引方式的区别相关推荐
- java 截取byte数组_2020年的秋招已经开始了!最新Java面试题大全(文末附参考答案)送给大家...
包含的模块 本文分为十九个模块,分别是:Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring ...
- element js 包含字符_携程春招题目字符串截取和数组升维
编程风格 简单陈述一下文中代码使用的编程风格: 使用 ES5,以避免有些在线编程平台不支持 ES6 的状况(所以在这里没有用 new Set()) Airbnb 代码规范,不使用单 var 模式 变量 ...
- Js常用方法:JS字符串截取、数组截取等
Js常用方法:JS字符串截取.数组截取等 Js常用方法(二)String字符串 .Array数组 减操作 前言:前端开发中最常见的就是对字符串.数组或对象增删改查等操作 下面总结一下常用且比较实用的方 ...
- js字符串截取为数组
var str="hello,word,java,eclipse,jsp"; //字符串截取为数组 var strArr=str.split(","); for ...
- java截取数组_JS Array.slice 截取数组的实现方法
slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数 ...
- numpy随机生成01矩阵_NumPy数组基本介绍
本文作者:孙晓玲 文字编辑:钱梦璇 技术总编:张 邯 NumPy是短语"Numerical Python"的缩写,NumPy库是一个功能强大的Python库,主要用于对多维数组 ...
- c++随机打乱数组_NumPy数组基本介绍
本文作者:孙晓玲 文字编辑:钱梦璇 技术总编:张 邯 NumPy是短语"Numerical Python"的缩写,NumPy库是一个功能强大的Python库,主要用于对多维数组 ...
- numpy创建三维空数组_numpy数组的创建和属性转换
一.数据与numpy数组的创建 1. python数组的创建 python中的固定类型数组: python中提供了几种将数组存储在有效的.固定类型的数据缓存中的选项.内置的数组(array)模块可以创 ...
- python改变数组形状_NumPy数组的变形(改变数组形状)
在机器学习以及深度学习的任务中,通常需要将处理好的数据以模型能接收的格式输入给模型,然后由模型通过一系列的运算,最终返回一个处理结果.然而,由于不同模型所接收的输入格式不一样,往往需要先对其进行一系列 ...
最新文章
- 创成汇2019年参加创新创业大赛都能获得什么?
- Beaglebone Black教程Beaglebone Black中的Cloud9 IDE基本使用
- laytpl遍历实体列表_Layui数据表格之获取表格中所有的数据方法
- java泛型程序设计——翻译泛型表达式+翻译泛型方法
- php tp 模板assign,thinkphp中怎么让assign在另一个模板里使用呢?
- python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...
- 搜索的php mysql代码生成器_四款强大的PHP代码生成器
- 深入java虚拟机(二) 对象的创建
- 设计sample语言的语法_Verilog语法之〇:Verilog HDL简介
- Python机器学习简介
- 鸿蒙的物联网世界之我的一天
- heartbeat: ha.cf配置文件中文详解
- android输入法中文在哪里设置,android输入法怎么设置中文
- 【安全狗高危安全通告】OpenSSL存在远程代码执行漏洞和拒绝服务漏洞
- electron打包后在win7上打开异常KERNEL32.dll
- (附源码)计算机毕业设计ssm大学生学习交友平台
- 知识进步的阶梯--书
- Python Unittest简明教程
- IHE测试系列之一:胜利归来
- html中按钮方法,html中button标签的使用详解
热门文章
- Qt工作笔记-对QXmlStreamReader的进一步认识(读取XML)
- Qt工作笔记-遍历文件夹里面的所有文件,并在QTreeWidget内显示
- java封装demo_java封装
- python123百钱买百鸡_求解百钱买百鸡问题。假设大鸡 5 元一只,中鸡 3 元一只,小鸡 1 元三只,现有 100 元钱想买 100 只鸡,有多少种买法?截图代码和运行结果_学小易找答案...
- 操作系统之进程管理:8、进程互斥的软件实现方法(单标志、双标志、Peterson)
- 动态规划经典题之编辑距离
- Python Numpy 数组的初始化和基本操作
- PyTorch之torch.nn.Softmax()
- 1313. 解压缩编码列表
- JS 客户端浏览器操作、BOM、渗透客户端浏览器(windows对象:screen屏幕操作、location浏览器域名、history浏览器历史、Navigator浏览器信息、cookie)