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

(1)ndarray 数组索引可以基于 0 - n 的下标进行;

(2)切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

实例1:通过下标。注意下标是从0开始

import numpy as np

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

输出结果为:

  [0 1 2 3 4 5 6 7 8 9]
  0
  2

实列2:通过slice进行切片

import numpy as np

a = np.arange(10)

s1 = slice(2, 7)
print(a[s1]) s2 = slice(2, 7, 2) # 设置起始,终止和步长
print(a[s2])

输出结果为:

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

实例3: 通过冒号分隔切片参数 start:stop:step 来进行切片操作

冒号 : 的解释:

  如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。

  如果为 [2:],表示从该索引开始以后的所有项都将被提取。

  如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。

import numpy as np

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

输出结果为:

[2  4  6]
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]

多维数组

实例1: 在多维数组的切片中,使用逗号 , 区分维数。注意:冒号分隔切片不包含停止索引。

import numpy as np

a=np.arange(0,12)
a.shape=(3,4)
print(a)
print(a[0:2,1:3])

输出结果:

[[ 0  1  2  3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[1 2]
[5 6]]
a[0:2,1:3]

可以把冒号左边的数看成是横坐标,右边的数看成是纵坐标,四个坐标做笛卡尔积,即取数组 a 下标是 (0,1),(0,2),(1,1),(1,2) 四个位置的数。

实例2

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]]

实例3: 切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。

    如果在行位置使用省略号,它将返回包含行中元素的 ndarray。

import numpy as np

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

输出结果为:

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

[2 4 5]

[3 4 5]

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


Numpy | 08 切片和索引的更多相关文章

  1. NumPy 切片和索引

    NumPy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以 ...

  2. NumPy切片和索引

    NumPy - 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样. 如前所述,ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方 ...

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

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

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

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

  5. NumPy 数组切片

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

  6. Numpy对数组按索引查询

    Numpy对数组按索引查询 三种索引方法: 基础索引 神奇索引 布尔索引 基础索引 一维数组 和Python的List一样 二维数组 注意:切片的修改会修改原来的数组 原因:Numpy经常要处理大数组 ...

  7. 5、numpy——切片和索引

    1.一维数组 1.1 一维数组很简单,基本和列表一致.ndarray 数组可以基于 0 - n 的下标进行索引. 切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step ...

  8. 吴裕雄--天生自然Numpy库学习笔记:NumPy 切片和索引

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

  9. 【NumPy学习指南】day4 多维数组的切片和索引

    ndarray支持在多维数组上的切片操作.为了方便起见,我们可以用一个省略号(...)来 表示遍历剩下的维度. (1) 举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组 ...

随机推荐

  1. (一)pdf的数据类型

    引自:https://blog.csdn.net/steve_cui/article/details/81912528 pdf的数据类型主要由8种 boolean(布尔型)        :关键字为“ ...

  2. gevent介绍(转)

    原文:https://www.liaoxuefeng.com/wiki/897692888725344/966405998508320 Python通过yield提供了对协程的基本支持,但是不完全.而 ...

  3. Python协程深入理解(转)

    原文:https://www.cnblogs.com/zhaof/p/7631851.html 从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数.yield在协程中的用法: 在协 ...

  4. Java学习:构造方法

    构造方法: 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是再调用构造函数. 格式: public 类名称(参数类型 参数名称){ 方法体 } 注意事项: 构造方法的名称 ...

  5. Scala 系列(十一)—— 模式匹配

    一.模式匹配 Scala 支持模式匹配机制,可以代替 swith 语句.执行类型检查.以及支持析构表达式等. 1.1 更好的swith Scala 不支持 swith,可以使用模式匹配 match.. ...

  6. C# 进程 与 线程

    C#多线程和线程池1.0.线程的和进程的关系以及优缺点windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程 ...

  7. vs2019 netocore项目本地程序ip地址访问需修改的配置文件

    IISPress启动项目后,打开IISPress托盘可以看到当前项目 根据图中标识出来的applicationhost.config文件路径,一般为你的项目解决方案目录下的.vs\解决方案文件夹\co ...

  8. soup.select的用法

    1.通过标签选择 # 选择所有title标签 soup.select("title") # 选择所有p标签中的第三个标签 soup.select("p:nth-of-ty ...

  9. 【Kafka】Exactly Once语义与事务

    Kafka在0.11.0.0之前的版本中只支持At Least Once和At Most Once语义,尚不支持Exactly Once语义. 但是在很多要求严格的场景下,如使用Kafka处理交易数据 ...

  10. 英特尔加速 Android 应用

    下载地址 https://software.intel.com/zh-cn/android https://github.com/intel/haxm 解压目录 双击.exe,安装即可 检查SDK M ...