2017-02-26 60 views
0

我新的numpy的&有一個關於它的問題:關於numpy的形狀

根據docs.scipy.org中,「形狀」的方法是「陣列的尺寸對於具有N行的矩陣。和m列,形狀將是(N,M)」

假設我創建如下一個簡單的數組:

np.array([[0,2,4],[1,3,5]]) 

使用 「形狀」 的方法,它返回(2,3)(即陣列有2列& 3列)

但是,對於數組([0,2,4]),形狀方法將返回(3,)(這意味着它有3行,根據上面的定義)

我很困惑:數組([0,2,4])應該有3列而不是3行,所以我期望它返回(,3)。

任何人都可以幫助澄清?非常感謝。

+1

請不要關注標籤,「行」和「列」。只需要計算維數 - 1,2和3等。在討論二維數組時,行和列是最有意義的。使用1d陣列,談論元素更有意義。但那只是慣例。 – hpaulj

+0

哦,非常感謝! – Owenleung

回答

3

這只是表示法 - 在Python,元組是從表達分組分辨(或操作的順序的東西)通過使用逗號的 - 也就是說,(1,2,3)是一個元組並(2x + 4) ** 5包含一個表達式2x + 4。爲了保持單元元組不同於單元元素表達式,否則元素表達式會不明確((1)(1) - 這是單元素元組,而簡單表達式的值爲1?),我們使用尾隨逗號表示元組。

你得到的是一個單一的尺寸響應,因爲只有一個尺寸來衡量,打包成tuple類型。

0

numpy不僅支持二維數組,而且支持多維數組,並且通過多維我的意思是一維,二維,三維...... nD,並且有一種表示格式相應的維度數組。 lenarray.shape會得到你該數組的維數。如果數組是1-D,則不需要表示爲(m, n),或者如果數組是3-D,則它不足以表示其維度。

因此array.shape的輸出並不總是在(m, n)格式,它將取決於陣列本身,你會得到不同的尺寸不同的輸出。