为什么我在numpy数组中使用split()时会得到这个输出?

yptwkmov  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(126)

我正在运行这段代码,我故意使用了(2,1)顺序的索引。

a1 = np.arange(30).reshape(5, 6)
print(a1)
a, b, c = np.split(a1, (2, 1))
print("A is\n",a)
print("B is\n",b)
print("C is\n",c)

这是输出:

[[ 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]]
A is
 [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
B is
 []
C is
 [[ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]
 [24 25 26 27 28 29]]

我知道我得到b = []是因为我使用了索引(2,1)。但是为什么我从第一个索引得到c输出?

bvhaajcl

bvhaajcl1#

根据文件:
如果indices_or_sections是排序整数的一维数组,则条目指示在沿着axis的何处拆分数组。例如,对于axis=0[2, 3]将导致

- ary[:2]
 - ary[2:3]
 - ary[3:]

也就是说,你的例子a, b, c = np.split(a1, (2, 1))翻译成:

a = a1[:2]
b = a1[2:1]
c = a1[1:]

相关问题