浅析NumPy 切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

import numpy as np

a = np.arange(10)
s = slice(2,7,2)  # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])

输出结果为:

[2 4 6]

以上实例中,我们首先通过 arange() 函数创建 ndarray 对象。 然后,分别设置起始,终止和步长的参数为 2,7 和 2。

我们也可以通过冒号分隔切片参数 start:stop:step 来进行切片操作:

import numpy as np

a = np.arange(10)
b = a[2:7:2]  # 从索引 2 开始到索引 7 停止,间隔为 2
print(b)

输出结果为:

[2 4 6]

冒号 : 的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。

import numpy as np

a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
b = a[5]
print(b)

输出结果为:

5

import numpy as np

a = np.arange(10)
print(a[2:])

输出结果为:

[2 3 4 5 6 7 8 9]

import numpy as np

a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
print(a[2:5])

输出结果为:

[2 3 4]

多维数组同样适用上述索引提取方法:

import numpy as np

a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从某个索引处开始切割
print('从数组索引 a[1:] 处开始切割')
print(a[1:])

输出结果为:

[[1 2 3]
[3 4 5]
[4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
[4 5 6]]

切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray。

import numpy as np

a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1])  # 第2列元素
print (a[1,...])  # 第2行元素
print (a[...,1:]) # 第2列及剩下的所有元素

输出结果为:

[2 4 5]
[3 4 5]
[[2 3]
[4 5]
[5 6]]

以上就是浅析NumPy 切片和索引的详细内容,更多关于NumPy 切片和索引的资料请关注我们其它相关文章!

(0)

相关推荐

  • python numpy数组的索引和切片的操作方法

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 "Numeric Python". 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的. 也开发了另一个包 Numarray ,它拥有一些额外的功能. 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包. 这个开源项目有很多贡献者. NumPy 操作 使用Nu

  • NumPy 基本切片和索引的具体使用方法

    索引和切片是NumPy中最重要最常用的操作.熟练使用NumPy切片操作是数据处理和机器学习的前提,所以一定要掌握好. 文档:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html 索引 ndarrays可以使用标准Python x[obj]语法对其进行索引 ,其中x是数组,obj是选择方式.有三种可用的索引:字段访问,基本切片,高级索引.究竟是哪一个取决于obj. 注意 在Python中,x[(exp1, exp2, ...

  • numpy中索引和切片详解

    索引和切片 一维数组 一维数组很简单,基本和列表一致. 它们的区别在于数组切片是原始数组视图(这就意味着,如果做任何修改,原始都会跟着更改). 这也意味着,如果不想更改原始数组,我们需要进行显式的复制,从而得到它的副本(.copy()). import numpy as np #导入numpy arr = np.arange(10) #类似于list的range() arr Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr[4] #索引(注意是从

  • 浅析NumPy 切片和索引

    ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组. import numpy as np a = np.arange(10) s = slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2 print (a[s]) 输出结果为: [2 4 6

  • Python Numpy学习之索引及切片的使用方法

    目录 1. 索引及切片 2. 高级索引 1. 索引及切片 数组中的元素可以通过索引以及切片的手段进行访问或者修改,和列表的切片操作一样. 下面直接使用代码进行实现,具体操作方式以及意义以代码注释为准: (1)通过下标以及内置函数进行索引切片 """ Author:XiaoMa date:2021/12/30 """ import numpy as np a = np.arange(10)#创建一个从0-9的一维数组 print(a) i = sl

  • Python numpy ndarray属性,索引,切片

    目录 一.ndarray 的重要属性 二.切片 1. 一维切片 1. 二维切片 三.索引 1. 一维数组索引 2. 二维数组索引 3. 布尔索引 4. 非运算 5. 或运算 6. 与运算 一.ndarray 的重要属性 dtype属性:返回ndarray数组的数据类型,数据类型的种类. ndim属性:返回数组维度的数量. shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple). size属性:返回用来保存元素的数量,相当于shape中n×m的值. T属性:返

  • Python NumPy教程之索引详解

    目录 为什么我们需要 NumPy 使用索引数组进行索引 索引类型 基本切片和索引 高级索引 NumPy 或 Numeric Python 是一个用于计算同质 n 维数组的包.在 numpy 维度中称为轴. 为什么我们需要 NumPy 出现了一个问题,当 python 列表已经存在时,为什么我们需要 NumPy.答案是我们不能直接对两个列表的所有元素执行操作.例如,我们不能直接将两个列表相乘,我们必须逐个元素地进行.这就是 NumPy 发挥作用的地方. 示例 #1: # 演示需要 NumPy 的

  • 浅析Golang切片截取功能与C++的vector区别

    目录 1. 引言 2.分析过程 2.1 s[:]的方式截取元素 2.2 append的方式截取元素 3. 结论 浅析golang切片截取(删除)功能 1. 引言 golang的切片被认为是和C++的vector容器类似,都可以认为是动态数组,但又不完全一样. 那么区别到底在哪里呢?对元素的删除方式是很重要的一点区别 对于C++的vector来说,用erase函数来删除元素,其原理是将当前位置后面的元素都向前移动一位,删除一个元素的平均时间复杂度为O(n) 对于golang的slice来说,没有用

  • 浅析SQL Server 聚焦索引对非聚集索引的影响

    前言 在学习SQL 2012基础教程过程中会时不时穿插其他内容来进行讲解,相信看过SQL Server 2012 T-SQL基础教程的童鞋知道前面写的所有内容并非都是摘抄书上内容,如若是这样那将没有任何意义,学习的过程必须同时也是一个思考的过程,无论是独立思考也好还是查资料也罢都是思考而非走马观花,要不然过一段时间又会健忘.简短的内容,深入的理解. 话题 非聚集索引定义:非聚集索引也是一个B树结构,与聚集索引不同的是,B树的叶子节点存的是指向堆或聚集索引的指针.你真的理解了吗??你能举出例子吗?

  • 浅析Redis 切片集群的数据倾斜问题

    目录 Redis 中如何应对数据倾斜 什么是数据倾斜 数据量倾斜 bigkey导致倾斜 Slot分配不均衡导致倾斜 Hash Tag导致倾斜 数据访问倾斜 总结 参考 Redis 中如何应对数据倾斜 什么是数据倾斜 如果 Redis 中的部署,采用的是切片集群,数据是会按照一定的规则分散到不同的实例中保存,比如,使用 Redis Cluster 或 Codis. 数据倾斜会有下面两种情况: 1.数据量倾斜:在某些情况下,实例上的数据分布不均衡,某个实例上的数据特别多. 2.数据访问倾斜:虽然每个

  • python数学建模是加深Numpy和Pandas学习

    目录 前言 Numpy 学习 1-numpy.array 2-numpy.empty 3-numpy.zeros 4-numpy.ones NumPy 从已有的数组创建数组 1-numpy.asarray 2-numpy.frombuffer 3-numpy.fromiter NumPy 从数值范围创建数组 1-numpy.arange 2-numpy.linspace 3-numpy.logspace 综合运用[array.arange.linspace.lonspace]: 综合运用[one

随机推荐