切片 numpy 数组与选择单个元素 [英] Slicing a numpy array vs selecting a single element
问题描述
我有一个数组:
arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
如果我切片数组 arr[:, :1]
我的结果是 array([[1],[4], [7]])
.
If I slice the array arr[:, :1]
my result is array([[1],
[4], [7]])
.
如果我对数组 arr[:, 0]
进行切片,我的结果是 array([1, 4, 7])
.
If I slice the array arr[:, 0]
my result is array([1, 4, 7])
.
为什么会有不同?
推荐答案
:1
是一个切片(恰好长度为 1),所以 numpy 为每一行返回一个列表(第一个暗淡)在你的数组中.这就是为什么你有一个二维数组的原因:你要求一个带有 :
的子数组.
:1
is a slice (which happens to be of length 1) so numpy returns a list for every line (first dim) in your array. This is why you have a 2-dimensional array as a result: you asked for a sub array with :
.
0
另一方面是一个索引,因此 numpy 将结果缩小 1 维,结果是值列表(更精确的维数为 1 的数组).
0
on the other hand is an index so numpy shrinks the result by 1 dimension resulting of a list of values (array of dimension 1 more precisely).
这篇关于切片 numpy 数组与选择单个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!