Code:
import numpy as np
z = np.array([[1,3,5],[2,4,6]])
print(z[0:, :2])
答:
[[1, 3] [2, 4]]
我是一个python初学者,当上述问题出现时,我正在解决一个互动练习。
我无法理解,在这种情况下 z[0:, :2] 是如何工作的?如果可能,请帮助我了解这种情况。
您可以在此处阅读有关 Numpy 切片和索引的信息:
https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
在这种情况下,0:
表示"所有行,从(包括(第 0 行开始一直到最后"(您也可以只使用等效的:
,这意味着"所有行,从开始一直到结束"(。
:2
的意思是"所有列,从开始一直到(但不包括(第 2 列"。
z[0:, :2]
一起表示"z
中包括所有行和前两列的部分"。列出的第一个维度是行,第二个维度是列。如果您的数组是 3D,则可以包含另一个带有另一个逗号的维度,依此类推。
首先你要求获取所有行(0:
与:
相同(:
[[1,3,5],
[2,4,6]]
然后你要求列 0 和 1(:2
与0:2
相同,这意味着从 0 到 2 排除(:
[[1,3],
[2,4]]
>z[0:, :2]
选择所有(即两行(中的所有元素(0:
选择从0开始的行索引范围(和前两列(:2
选择列索引0和1(。
column 0 1 2
--------------
row 0 | 1 3 5
row 1 | 2 4 6
这是 numpy 数组的一个功能,在本例中,适用于 2D 数组。
如果z = np.array([l0, l1, l2, l3])
其中 l0、l1、l2、l3 是列表,
然后z[1:3,2:5] = [l1[2:5], l2[2:5]]
因此,第一个切片参数适用于外部列表,而第二个参数适用于内部列表。这推广到 3D numpy 数组等。
这是文档: https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html