首页 > 其他分享 >8. Numpy索引和切片

8. Numpy索引和切片

时间:2022-09-22 18:56:19浏览次数:50  
标签:示例 print 切片 索引 数组 np Numpy

1. 前言

在 NumPy 中,如果想要访问,或修改数组中的元素,您可以采用索引或切片的方式,比如使用从 0 开始的索引依次访问数组中的元素,这与 Python 的 list 列表是相同的。

NumPy 提供了多种类型的索引方式,常用方式有两种:基本切片与高级索引。本节重点讲解基本切片。

2. 基本切片

NumPy 内置函数 slice() 可以用来构造切片对象,该函数需要传递三个参数值分别是 start(起始索引)、stop(终止索引) 和 step(步长) ,通过它可以实现从原数组的上切割出一个新数组。

示例如下:

import numpy as np
a = np.arange(10)
#生成切片对象
s = slice(2,9,3)#从索引2开始到索引9停止,间隔时间为2
print(a[s])

输出结果:

[2 5 8]

您也可以通过冒号来分割切片参数,最终也能获得相同结果,示例如下:

import numpy as np
a = np.arange(10)
b = a[2:9:2]
print(b)

输出结果:

[2 5 8]

下面对冒号切片做简单地说明:

  • 如果仅输入一个参数,则将返回与索引相对应的元素。 对于上述示例来说[3] 就会返回 3。
  • 如果在其前面插入“:”如[:9],则会返回 0-8 的所有数字(不包含9)。
  • 如是 [2:] 则会返回 2-9 之间的数字。
  • 如果在两个参数之间,如[2:9],则对两个索引值之间的所有元素进行切片(不包括停止索引)。


下面对冒号类型的切片做了简单的实例演示:

示例 1:

 
a = np.arange(10)
b = a[3]
print (b)

输出结果:

3

示例 2:

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

输出结果:

[2  3  4  5  6  7  8  9]

示例 3:

import numpy as np
a = np.arange(10)
print a[2:5]

输出结果如下:

[2  3  4] 

3. 多维数组切片

多维数组切片操作,实例如下:

import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从[1:]索引处开始切割
print(a[1:])

输出结果:

[[1 2 3]
 [3 4 5]
 [4 5 6]]
#切割后的新数组
[[3 4 5]
 [4 5 6]]

注意:切片还可以使用省略号“…”,如果在行位置使用省略号,那么返回值将包含所有行元素,反之,则包含所有列元素。

实例演示如下:

import numpy as np
#创建a数组
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
#返回数组的第二列
print (a[...,1]) 
#返回数组的第二行
print (a[1,...])
#返回第二列后的所有项
print (a[...,1:])

输出结果:

#第二列数组
[2 4 5]
#第二行数组
[3 4 5]
#返回第二列及以后的所有元素
[[2 3]
[4 5]
[5 6]]

 

标签:示例,print,切片,索引,数组,np,Numpy
From: https://www.cnblogs.com/jiajunling/p/16720504.html

相关文章

  • 7. NumPy创建区间数组
    1.前言所谓区间数组,是指数组元素的取值位于某个范围内,并且数组元素之间可能会呈现某种规律,比如等比数列、递增、递减等。为了方便科学计算,PythonNumPy支持创建区间数组......
  • 6. Numpy创建数组
    1.前言在《NumPyNdarray对象》一节,介绍了创建ndarray数组的基本方法,除了使用array()方法外,NumPy还提供了其他创建ndarray数组的方法。本节对这些常用方法做简单介......
  • 5. NumPy数组属性
    1.前言本节介绍Numpy数组的常用属性。2.ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数......
  • 1. NumPy是什么
    1.前言NumPy的全称是“NumericPython”,它是Python的第三方扩展包,主要用来计算、处理一维或多维数组。在数组算术计算方面,NumPy提供了大量的数学函数。NumPy的底......
  • elasticsearch的.security-7索引崩溃恢复笔记
    装了es三方插件重启后出现以下问题failedtoauthenticateuser[elastic]failedtoretrievepasswordhashforreserveduser[elastic]org.elasticsearch.action.......
  • mysql索引优化:唯一性太低的字段
    除非特殊情况,否则不要在唯一性太低的字段上面添加索引。 什么叫唯一性太低?主要是一些表示状态或者类型的字段,例如:性别、是否删除等。 为何?mysql在查询时,会将索引中......
  • Python之numpy库(二)-函数
    1.算术函数  如果参与运算的两个对象都是ndarray,并且形状相同,那么会对位彼此之间进行(+-*/)运算。NumPy算术函数包含简单的加减乘除:add(),subtract(),multiply()......
  • 数据库索引问题总结
    一、主流MySQL引擎1.isam对select和insert的处理速度更快,但不支持外键和事务安全2.V5.5后innodb是默认引擎,速度稍微逊色一点,但对事务和并发的处理更好。二、索引建立......
  • Python——索引与切片
    #索引与切片##1.序列序列:list,tuple,str其中list是可变序列typle,str是不可变序列#修改序列的值list=[3,4,5]tup=(3,4,5)str='345'list[1]=99listoutp......
  • MySQL索引查询条件使用函数导致索引失效
     索引失效EXPLAINSELECTdt.nameASdeviceName,su.`name`ASuserName,date_format(co.upload_time,'%Y%m%d')astimeFROMtb_cust_ordercoI......