import numpy as np
r = np.arange(36)
r.resize((6, 6))
print(r)
# prints:
# [[ 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 32 33 34 35]]
print(r[:,::7])
# prints:
# [[ 0]
# [ 6]
# [12]
# [18]
# [24]
# [30]]
print(r[:,0])
# prints:
# [ 0 6 12 18 24 30]
r[:,::7]
给了我一个专栏,r[:,0]
给了我一行,他们都有相同的数字。如果有人能向我解释原因,我会很高兴吗?
答案 0 :(得分:2)
因为step参数大于相应的形状,所以你只需得到第一个" row"。但是这些不相同(即使它们包含相同的数字),因为[:, 0]
中的标量索引会使相应的维度变平(因此您将获得一维数组)。但是[:, ::7]
会保持维度的数量不变,但会改变步骤切片维度的形状。