1、索引小细节1
如果使用两个参数来进行索引,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。还需要注意的是数组下标是从0开始的,与MATLAB语言不同。
例子
import numpy as np
a = np.arange(10) #[0 1 2 3 4 5 6 7 8 9]
print(a[2:])
output:
[2 3 4]
2、索引切片小细节2
多维数组的索引和切片
arr =
[
[1,2,3],#表示arr[0]
[3,4,5],
[4,5,6]
]
output arr[2]:
[ 4 5 6]
3、索引切片小细节3
np.ix_函数,用于创建用于选择数组中特定行和列的索引组合
例子
import numpy as np
# 创建一个 32 个元素的数组并重塑为 8x4 的二维数组
x = np.arange(32).reshape((8, 4))
# 使用 np.ix_ 创建索引数组,并选择特定的行和列
result = x[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]
print(result)
这段代码创建了一个包含 0 到 31 的数组,然后将其重塑为 8 行 4 列的二维数组 x。数组 x 的内容如下:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]
[28 29 30 31]]
np.ix_ 函数生成用于选择指定行和列的索引数组。具体来说:
[1, 5, 7, 2] 指定行索引。
[0, 3, 1, 2] 指定列索引。
np.ix_([1, 5, 7, 2], [0, 3, 1, 2]) 生成两个二维数组,用于组合选择元素:
行索引数组:
[[1]
[5]
[7]
[2]]
列索引数组:
[[0 3 1 2]]
选择元素:
使用上述行和列索引数组,选择 x 中的元素:
x[1, 0] -> 4
x[1, 3] -> 7
x[1, 1] -> 5
x[1, 2] -> 6
x[5, 0] -> 20
x[5, 3] -> 23
x[5, 1] -> 21
x[5, 2] -> 22
x[7, 0] -> 28
x[7, 3] -> 31
x[7, 1] -> 29
x[7, 2] -> 30
x[2, 0] -> 8
x[2, 3] -> 11
x[2, 1] -> 9
x[2, 2] -> 10```
## 最后的输出
[[ 4 7 5 6]
[20 23 21 22]
[28 31 29 30]
[ 8 11 9 10]]