Menu
CoddyTech

数组索引

Coddy NumPy 基础 课程的第 12 课,共 18 课。

Numpy 的另一个实用功能是可以从数组中选择特定索引。将一个 List 放在 [] 方括号内,并指定要选择的索引:ary[indices] 

示例 1

获取第 0th, 2nd, 4th 个元素:

x = np.arange(5, 15) # np.array([5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
x[[0, 2, 4]]
>>> [5, 7, 9]

示例 2

获取第一个和最后一个元素(这次从二维数组中获取)

x = np.array([[0, 1], [2, 3], [4, 5], [6, 7]])
x[[0, -1]]
>>> [[0, 1], [6, 7]]

那么,如何从二维数组中获取特定元素呢?

我们使用 ary[[Row indices], [Element indices]]

示例 3

从第 2nd 行和第 3rd 行中获取第一个和最后一个元素

x = np.array([
	[ 0,  1,  2,  3,  4,  5],
	[ 6,  7,  8,  9, 10, 11],
	[12, 13, 14, 15, 16, 17],
	[18, 19, 20, 21, 22, 23],
])
x[[1, 1, 2, 2], [0, -1, 0, -1]]
>>> [6, 11, 12, 17]

发生了什么?

Numpy 会查看方括号 [] 内每个列表中对应位置的索引,并返回相应元素:

x[[1, 1, 2, 2], [0, -1, 0, -1]]

  • x[1, 0]  # --> 6
  • x[1, -1] # --> 11
  • x[2, 0]  # --> 12
  • x[2, -1] # --> 17

如何获取所有行中的第一个和最后一个索引?

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

给定一个二维数组 ary,使用我们在本课中学过的方法,取出所有能被 5 整除的数字(0、5、10……)。

亲手试试

import numpy as np
'''
ary looks like:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
'''
ary = np.arange(0, 20).reshape(4, 5)  # don't change ary
res = ary[]  # <-- Complete indices
print(str(res).replace("\n", ""))  # don't change this line

NumPy 基础中的所有课

自己练习: Python 在线编译器