关于 numpy 的一些“不常见”用法
...
和 ::
的用法,代码如下:
import numpy as np
a = np.array([[1,2,3], [4,5,6],[7,8,9]])
f = np.asarray([i for i in range(12)])
print(a)
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
print(a[...])
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
# 对省略号 ... 所在的维度下标不做处理
print(a[..., :-1])
# [[1 2]
# [4 5]
# [7 8]]
print(f)
# [ 0 1 2 3 4 5 6 7 8 9 10 11]
print(f[::])
# [ 0 1 2 3 4 5 6 7 8 9 10 11]
# 双冒号 ::num ,从0开始,取索引为num的整数倍的元素
print(f[::1])
# [ 0 1 2 3 4 5 6 7 8 9 10 11]
print(f[::2])
# [ 0 2 4 6 8 10]
print(f[::3])
# [0 3 6 9]
print(f[::-1])
# [11 10 9 8 7 6 5 4 3 2 1 0]
print(f[::-2])
# [11 9 7 5 3 1]
# 双冒号 ::num ,从最后一个元素开始,逆序取索引为num的整数倍的元素
print(a[::-1, ...])
# [[7 8 9]
# [4 5 6]
# [1 2 3]]
print(f[::-2])
# [11 9 7 5 3 1]
print(a[..., ::2])
# [[1 3]
# [4 6]
# [7 9]]