索引numpy的阵列我是一名高中学生,并通过一些numpy的代码看,我发现沿着澄清关于Python
a = x[:,0:4]
东西线和X是一个2-d阵列。我知道一个[:],指的是数组a中的所有对象,所以对于x [:,0:4],它是指所有的行和索引为0,1,2,3的列,而不包括具有索引的列4?
只是试图得到关于这是如何工作的确认,因为我看到它在几种类型的代码中,只是想确定。
索引numpy的阵列我是一名高中学生,并通过一些numpy的代码看,我发现沿着澄清关于Python
a = x[:,0:4]
东西线和X是一个2-d阵列。我知道一个[:],指的是数组a中的所有对象,所以对于x [:,0:4],它是指所有的行和索引为0,1,2,3的列,而不包括具有索引的列4?
只是试图得到关于这是如何工作的确认,因为我看到它在几种类型的代码中,只是想确定。
你说得对。这a = x[:,0:4]
选择前四列。
例:第二首“第一维,第二维,等等:
>>> a = np.arange(25).reshape(5, 5)
>>> a
array([[ 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]])
可以跳过0
因为a[:,:4]
的含义一样a[:,0:4]
:
>>> a[:,:4]
array([[ 0, 1, 2, 3],
[ 5, 6, 7, 8],
[10, 11, 12, 13],
[15, 16, 17, 18],
[20, 21, 22, 23]])
你总是可以想到“。在2D情况下,第一个维度是行,第二个维度是列。
是的,这被称为片符号和numpy的阵列也可以使用Python切片表示法,所以
>>>x = np.arange(25).reshape(5, 5)
>>>a = x[:, 0:4]
>>>a
array([[ 0, 1, 2, 3],
[ 5, 6, 7, 8],
[10, 11, 12, 13],
[15, 16, 17, 18],
[20, 21, 22, 23]])
如果使用切片标志,x
将是a
一个视图,而不是复制,所以如果更改数组x
中的值,则该值也将在a
中更改。
>>>x[1,1] = 1000
>>>a
array([[ 0, 1, 2, 3],
[ 5, 1000, 7, 8],
[ 10, 11, 12, 13],
[ 15, 16, 17, 18],
[ 20, 21, 22, 23]])
你明白了。这些文档相当不错 - [http://docs.scipy.org/doc/numpy/user/basics.indexing.html](http://docs.scipy.org/doc/numpy/user/basics.indexing。 html)和[http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html](http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html) – wwii