下面是“Numpy 数组索引的实现”的详细讲解攻略:
1. 索引方式
Numpy数组索引有两种方式:
基本索引
基本索引是指使用整数或切片(slice)来对数组进行索引,例如:
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
print("a:\n", a)
# 对数组a进行基本索引
print("a[0]:\n", a[0])
print("a[:2]:\n", a[:2])
print("a[1:3, 1]:\n", a[1:3, 1])
运行结果如下:
a:
[[1 2]
[3 4]
[5 6]]
a[0]:
[1 2]
a[:2]:
[[1 2]
[3 4]]
a[1:3, 1]:
[4 6]
高级索引
高级索引包括布尔索引和整数索引。
- 布尔索引: 使用一个布尔数组来对数组进行索引。数组形状必须相同,布尔数组中 True 所在位置对应的元素会被选中,False 所在位置对应的元素会被忽略,例如:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([True, False, True, False, True])
# 对数组a进行布尔索引
print("a[b]:\n", a[b])
运行结果如下:
a[b]:
[1 3 5]
- 整数索引: 使用一个整数数组来对数组进行索引。数组形状可以不同,整数数组中每个元素表示要选中的元素在相应维度的下标,例如:
import numpy as np
a = np.array([[0, 1], [2, 3], [4, 5]])
b = np.array([0, 1, 0])
# 对数组a进行整数索引
print("a[b]:\n", a[b])
运行结果如下:
a[b]:
[[0 1]
[2 3]
[0 1]]
2. 实现方式
Numpy 数组索引的实现方式主要有括号索引和点索引两种。
- 括号索引:按照上述的基本索引和高级索引的方式进行索引,例如:
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
print("a:\n", a)
# 对数组a进行基本索引和高级索引
print("a[0]:\n", a[0])
print("a[:2]:\n", a[:2])
print("a[1:3, 1]:\n", a[1:3, 1])
b = np.array([True, False, True])
print("a[b]:\n", a[b])
c = np.array([0, 1, 0])
print("a[c]:\n", a[c])
运行结果如下:
a:
[[1 2]
[3 4]
[5 6]]
a[0]:
[1 2]
a[:2]:
[[1 2]
[3 4]]
a[1:3, 1]:
[4 6]
a[b]:
[[1 2]
[5 6]]
a[c]:
[[1 2]
[3 4]
[1 2]]
- 点索引:使用
.
将索引操作添加到数组对象后面来实现索引,例如:
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
print("a:\n", a)
# 使用点索引对数组a进行基本索引和高级索引
print("a[0].size:\n", a[0].size)
print("a[:2].sum():\n", a[:2].sum())
print("a[1:3, 1].max():\n", a[1:3, 1].max())
b = np.array([True, False, True])
print("a[b].mean():\n", a[b].mean())
c = np.array([0, 1, 0])
print("a[c].var():\n", a[c].var())
运行结果如下:
a:
[[1 2]
[3 4]
[5 6]]
a[0].size:
2
a[:2].sum():
6
a[1:3, 1].max():
6
a[b].mean():
4.0
a[c].var():
2.9166666666666665
至此,“Numpy 数组索引的实现”的完整攻略就讲解完毕了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Numpy 数组索引的实现 - Python技术站