在涉及矩陣操作的小型Python腳本的開發過程中,我越來越困惑,因此我啓動了一個shell來玩弄一個玩具示例,並更好地理解Numpy中的矩陣索引。Numpy中的矩陣索引
這是我做過什麼:
>>> import numpy as np
>>> A = np.matrix([1,2,3])
>>> A
matrix([[1, 2, 3]])
>>> A[0]
matrix([[1, 2, 3]])
>>> A[0][0]
matrix([[1, 2, 3]])
>>> A[0][0][0]
matrix([[1, 2, 3]])
>>> A[0][0][0][0]
matrix([[1, 2, 3]])
正如你可以想像,這有不幫助我更好地瞭解在numpy的矩陣索引。這種行爲對於我想描述爲「自身的數組」的東西來說是有意義的,但是我懷疑任何在他們正確思想中的人都會選擇它作爲科學圖書館中矩陣的模型。
那麼,我得到的輸出的邏輯是什麼?爲什麼矩陣對象的第一個元素是它自己的? PS:我知道如何獲得矩陣的第一個條目。我感興趣的是這個設計決策背後的邏輯。
編輯:我不是問如何訪問矩陣元素,或爲什麼矩陣行像矩陣行爲。我在索引單個數字時要求定義矩陣的行爲。這是一個典型的數組操作,但是結果的行爲與您期望從數組中獲得的行爲完全不同。我想知道這是如何實施的,設計決策背後的邏輯是什麼。
語法是A [DIM1,DIM2,...]。對於這種情況,爲了得到第一個元素,可以做A [0,0],第二個元素爲A [0,1],第三個元素爲A [0,2]。這是一個1 x 3矩陣。 – Gopala
有沒有人真的讀過PS? – broncoAbierto
「矩陣」類被硬編碼爲總是有兩個維度(即行和列)。這通過切片和索引操作來保存(除非您訪問單個元素,例如'A [0,0]')。順便說一下,對於大多數用途,'ndarray'類(即標準numpy數組)是首選;搜索'numpy array vs matrix'來尋找關於這個主題的大量討論。 –