[英]Why numpy works of this way on 1d slicing?
您好,我正在检查 numpy 中的切片,我有以下两个代码:
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
arr[0:2, 1:4]
返回
[[2, 3, 4], [7, 8, 9]]
在第一种情况下,索引 go 从 0 到 2
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
0 1 2 3 4 0 1 2 3 4
在第一个切片 [0:2] 中选择 3 个第 2 位数
2, 3, 4
但在第二个不是,np 只得到 3 个数字,而不是像另一个一样的 4 个。
为什么其中一个在这种情况下选择结束 2,但在另一种情况下不是?
对于 1D,不考虑相同的行为和结束索引。
谢谢。
无论如何,它都没有选择结束索引。
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
arr[0:2, 1:4]
0 ⇢[[1, 2, 3, 4, 5],
1 ⇢ [6, 7, 8, 9, 10]]
⇡ ⇡ ⇡ ⇡ ⇡
0 1 2 3 4
在第一个切片0:2
中,拾取 2 个元素0
和1
,这导致
0 ⇢[1, 2, 3, 4, 5]
1 ⇢[6, 7, 8, 9, 10]
然后,在其中的每一个中,都会选择1
、 2
和3
rd 元素( 1:4
),从而导致
0 ⇢[2, 3, 4]
1 ⇢[7, 8, 9]
⇡ ⇡ ⇡
1 2 3
也许这个例子对你有帮助。 我推荐这个: 了解切片
arr = np.array([
#col:0 , 1, 2, 3, 4
[1, 2, 3, 4, 5], # <- row : 0
[6, 7, 8, 9, 10], # <- row : 1
[11, 12, 13, 14, 15] # <- row : 2
])
# Slicing : 0:2 -> 0,1
# Slicing : 1:4 -> 1,2,3
arr[ 0:2, 1:4]
# ^row^ ^col^
Output:
array([[2, 3, 4],
[7, 8, 9]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.