一文读懂numpy的简单数组切片
1、[1:2],[1:,:2],[1:2,2:3]究竟代表什么?
首先我们先来看一个例子,用一个np的数组来演示:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
下面这个大家应该是都比较熟悉的。
print(a)
# 输出结果:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
print(a[1:]
# 输出结果
# [[4 5 6]]
# a[1:]的1代表从第一行开始取(注意:计算机数组的下标是从0开始的不是从1开始的),所以就是第一行[[4 5 6]]
print(a[0:2])
# 输出结果
# [[1 2 3]
# [4 5 6]]
# a[0:2]的0和2代表的是取0~1行,一共是两行,第0行和第一行(注意:是取到n-1行)
但是下面这个可能是很多初学者的所遇到的问题:
print(a[0:2, :2])
# 输出结果
# [[1 2]
# [4 5]]
# a[0:2, :2]中逗号前面的0:2代表的是行,后面的 :2代表的是列
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
下面是取0:2行的结果
接下来是开始取 :2列
所以最后的结果是:
# [[1 2]
# [4 5]]
相信大家对这个a[0:2, :2]比较的了解了吧!
其它的数据也是一样的,比如说a[1:,:2]先取第一行到最后一行,在取了行的基础上然后开始取第0列到第1列。
2, :2]比较的了解了吧!
其它的数据也是一样的,比如说a[1:,:2]先取第一行到最后一行,在取了行的基础上然后开始取第0列到第1列。
如果大家还有疑问,欢迎在评论下方留言。