索引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