Numpy基础索引与切片

您所在的位置:网站首页 python二维列表的定义 Numpy基础索引与切片

Numpy基础索引与切片

2023-03-18 08:33| 来源: 网络整理| 查看: 265

好久没有更新文章了,除了忙于一些琐碎的事情,更重要的是想将学到的东西加以历练,以便更加成熟的展示给大家

好了开始今天的正题

Numpy 模块的索引和切片不得不和python当中列表的索引和切片联系起来

一维数组:

对于模块中的一维数组,我认为它和列表的索引和切片没有区别。

import numpy as np arr = np.arange(10) print(arr)

arange 函数: 类似python中的内置函数range, 生成一个由参数构成的列表

请记住,在numpy中对于一维数组,也就是列表的索引不是根据下标来索引

arr = np.arange(10) print(arr) index = arr[6] print(index)

如果我们是根据普通列表索引的话,结果应该是5 ,但是通过numpy进行索引的话结果是6,我通常把它认为是通过编号开始索引元素

如果我需要元素 “5”,我在索引的时候就应该通过编号来打印 arr[3],而不是下标来进行索引,这块是是我思考了很久的结果。

import numpy as np arr = np.arange(10) print(arr) index = arr[6:8] print(index)

在这里我们看到了,无论是普通索引还是numpy 中对一维数组的索引,索引元素时,都是仅包括右边的数值而不包括左边的数值。

下来我们了解一个更高级的用法,对一维数组中某一些元素进行篡改

arr = [0, 1 ,2 ,3, 4, 5 ,6 ,7, 8, 9] #我们首先对我们需要的数据进行索引,假设我们需要的数据是 4,5,6 arr[4:7] #接着我们对获取的数据进行篡改 arr[4:7] = 12 print(arr)

打印的结果: [0, 1 ,2 ,3, 12, 12 ,12 ,7, 8, 9]

请记住:这里一维数组的切片反映的是原数组的视图,这意味着数据并不是被复制了,对于任何视图的的修改都会反映到原数组上。

视图:在mysql中视图并不是数据真实存储的位置,视图数据的真是来源,是在表格中,据对视图数据的修改都是对原数据的修改。

下面我来提升一些难度,看看大家是否看得懂

对二维数组来进行索引和切片,

定义一个二维数组:

import numpy as np arr =np.array( [[0, 1 ,2] ,[3, 4, 5] ,[6 ,7, 8]]) print(arr)

关于如何判断一个数组为几维数组,请观看它的开头和结尾的括号数,下面它是一个二维数组

下来我们对它进行索引:

arr =np.array( [[0, 1 ,2] ,[3, 4, 5] ,[6 ,7, 8]]) index = arr[0] #获取编号为0的行 print(index)

我们通过这张二维表来理解二维数组

如果我们给索引传入两个参数,会发生什么? 例如: arr[1,2]

有的同学会问, arr[1,2] 不应该是获取该二维数组中第一行和第二行,有可能不需要第二行,请记住 这是索引不是切片,切片书写的方式是,arr[1:2],这样获取的结果应该是只能拿到第数组中的第一行,不包括第二行

arr[1,2] 它的意思呢,我想将它表示为 arr[x,y],或者arr[Axis 0,Axis 1],在索引中,第一个参数表示为行,第二个参数为列,arr[1,2],表示我将会会拿到arr数组中,编号为1的行,编号为2的列,单独元素

请记住,索引针对的是某一元素,而切片针对的是一个范围的数据,一个是讲单独,一个是讲范围

好了,时间有限,我还想说更多的东西,寄希望于明天的时间段来和大家交流学习心得,我是一个学习者,任何人都可超越我,你也一样。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3