数组索引
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] # --> 6x[1, -1] # --> 11x[2, 0] # --> 12x[2, -1] # --> 17
如何获取所有行中的第一个和最后一个索引?
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单给定一个二维数组 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 lineNumPy 基础中的所有课
自己练习: Python 在线编译器