要访问或修改ndarray数组中的元素,可以使用数组切片/索引。

如前所述,ndarray数组索引从0开始。

使用切片访问数组,首先通过内置slice函数创建一个切片对象,该对象存储了创建时传入的startstopstep参数,把这个切片对象传给数组,我们就可以提取数组的一部分(切片)返回。

一维数组

示例

import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print(a[s])

输出

[2  4  6]

上面的例子中,首先使用arange()函数创建ndarray数组,然后定义一个切片对象,它的startstopstep值分别是2、7和2。当把这个切片对象传递给ndarray数组时,会从数组中提取一部分返回,返回部分的索引从2到7,步长2。

可以直接向ndarray数组传入start:stop:step格式的切片参数,效果相同。

示例

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

输出

[2  4  6]
  • [i] 如果只放一个参数,则返回与索引对应的单个项。
  • [:i] 如果在前面插入:,则从该索引之前的所有项都将被提取。
  • [start:stop] 如果使用了两个参数,中间用:分隔,则使用默认步骤1,提取两个索引(不包括stop)之间的项。

示例

单项切片

import numpy as np
a = np.arange(10)
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)
print(a[:2])

输出

[0 1]

示例

在索引之间切片

import numpy as np
a = np.arange(10)
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]]

切片还可以包括省略号(…),表示在该维度上选择全部。

示例

# 演示数组
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print ('数组:')
print (a)
print ('\n') # 返回一个数组,由第二列中的项目组成
print ('第二列中的项目是:')
print (a[...,1])
print ('\n') # 返回第二行
print ('第二行中的项目是:')
print (a[1,...])
print ('\n') # 返回第一列之后的项目
print ('第一列之后的项目:')
print (a[...,1:])

输出

数组:
[[1 2 3]
[3 4 5]
[4 5 6]] 第二列中的项目是:
[2 4 5] 第二行中的项目是:
[3 4 5] 第一列之后的项目:
[[2 3]
[4 5]
[5 6]]

NumPy 数组切片的更多相关文章

  1. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  2. Numpy数组基本操作(数组索引,数组切片以及数组的形状,数组的拼接与分裂)

    一:数组的属性 每个数组都有它的属性,可分为:ndim(数组的维度),shape(数组每个维度的大小),size(数组的总大小),dtype(数组数据的类型) 二:数组索引 和python列表一样,N ...

  3. numpy数组之读写文件

    目录 通过 numpy 读写 txt 或 csv 文件 通过 numpy 读写 npy 或 npz 文件 读写 npy 文件 读写 npz 文件 通过 h5py 读写 hdf5 文件 简单读取 通过切 ...

  4. NumPy 数组迭代

    章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...

  5. NumPy 数组创建

    章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...

  6. numpy数组的索引和切片

    numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...

  7. Numpy入门(二):Numpy数组索引切片和运算

    在Numpy中建立了数组或者矩阵后,需要访问数组里的成员,改变元素,并对数组进行切分和计算. 索引和切片 Numpy数组的访问模式和python中的list相似,在多维的数组中使用, 进行区分: 在p ...

  8. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  9. numpy数组、向量、矩阵运算

    可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...

随机推荐

  1. Vue下URL地址栏参数改变却不能刷新界面

    在完成毕业设计(基于Vue的信息资讯展示与管理平台)的过程中,处理如下图所示的 点击左侧栏目列表跳转到对应文章列表 的问题时,初次点击可以跳转到对应的页面,但是当第二次点击时,虽然地址栏的参数改变了, ...

  2. 【剑指Offer面试编程题】题目1370:数组中出现次数超过一半的数字--九度OJ

    题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 ...

  3. 腾讯2019秋招--小q爬塔(dp)

    小Q爬塔 题目描述: 小Q 正在攀登一座宝塔,这些宝塔很特别.塔总共有 n 层,但是每两层之间的净高却不相同,所以造成了小Q 爬过每层的时间也不同.如果某一层的高度为 x,那么爬过这一层所需的时间也是 ...

  4. Day10 - 灾难 HYSBZ - 2815

    Description 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学过生 ...

  5. C# 篇基础知识11——泛型和集合

    .NET提供了一级功能强大的集合类,实现了多种不同类型的集合,可以根据实际用途选择恰当的集合类型. 除了数组 Array 类定义在System 命名空间中外,其他的集合类都定义在System.Coll ...

  6. 用python写测试数据文件

    f是指向文件的指针,r是转义字符,可以让字符串中的\保持不被转义.路径点属性查然后加上当前文件. 'w'表示只写,‘r’表示只读. import random 导入random数 s = []开一个空 ...

  7. GNS3 模拟icmp重定向

    网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0:网络B的IP地址 ...

  8. SqlServer查看锁表与解锁

    某些情况下,sqlserver的表会被锁住,比如某个会话窗口有数据一直没提交,窗口又没关闭,这时表就会被锁住 其他任何连接查询表数据时都不会返回 这时需要手工杀掉产生死锁的会话ID,才能恢复正常 查看 ...

  9. EXTjs开发————优雅的用extjs写一个柱状图

    简单的写法,extjs可以直接引用插件来写,这里将我发表在百度文库的文档简述下来,有兴趣也可以关注我的百度文库,ID:该用户已失踪. 主要部分的代码: $(document).ready(functi ...

  10. IDE及PHP基础——注释、变量、数据、运算符、输出等

    IDE(Integrated Development Environment ),集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集成了代码编写 ...