博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NumPy切片和索引
阅读量:4681 次
发布时间:2019-06-09

本文共 1660 字,大约阅读时间需要 5 分钟。

NumPy - 切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样。

如前所述,ndarray对象中的元素遵循基于零的索引。 有三种可用的索引方法类型: 字段访问,基本切片高级索引

基本切片是 Python 中基本切片概念到 n 维的扩展。 通过将startstopstep参数提供给内置的slice函数来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分。

示例 1

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

输出如下:

[2  4  6]

在上面的例子中,ndarray对象由arange()函数创建。 然后,分别用起始,终止和步长值272定义切片对象。 当这个切片对象传递给ndarray时,会对它的一部分进行切片,从索引27,步长为2

通过将由冒号分隔的切片参数(start:stop:step)直接提供给ndarray对象,也可以获得相同的结果。

示例 2

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

输出如下:

[2  4  6]

如果只输入一个参数,则将返回与索引对应的单个项目。 如果使用a:,则从该索引向后的所有项目将被提取。 如果使用两个参数(以:分隔),则对两个索引(不包括停止索引)之间的元素以默认步骤进行切片。

示例 3

# 对单个元素进行切片  import numpy as npa = np.arange(10)b = a[5]  print b

输出如下:

5

示例 4

# 对始于索引的元素进行切片  import numpy as npa = np.arange(10)  print a[2:]

输出如下:

[2  3  4  5  6  7  8  9]

示例 5

# 对索引之间的元素进行切片  import numpy as npa = np.arange(10)  print a[2:5]

输出如下:

[2  3  4]

上面的描述也可用于多维ndarray

示例 6

import numpy as npa = 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

示例 7

# 最开始的数组  import numpy as npa = np.array([[1,2,3],[3,4,5],[4,5,6]])  print  '我们的数组是:'  print aprint  '\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]]

转载于:https://www.cnblogs.com/navysummer/p/9640715.html

你可能感兴趣的文章
LeetCode:平衡二叉树【110】
查看>>
01 操作系统和常用命令
查看>>
epoll简介 与 UDP server的实现
查看>>
.NET Framework Client Profile - a Subset of the .NET Framework Redistribution
查看>>
maven scope使用和理解
查看>>
[原创]Zabbix3.4_API的python示例
查看>>
linux环境变量配置
查看>>
POJ 1690 (Your)((Term)((Project)))
查看>>
nginx 实际部署配置文件示例
查看>>
吴恩达老师的神经网路和深度学习_02
查看>>
Mysql扩展之replication概述
查看>>
C++中数值的后缀
查看>>
EventModify
查看>>
mac mysql5.7修改密码
查看>>
C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别
查看>>
sample_code
查看>>
28天成交了104单,多亏了这5个逼单方法
查看>>
Linux常用快捷键和基本命令
查看>>
java
查看>>
[laravel] Laravel - composer install
查看>>