當我使用numpy.shape()
檢查數組的形狀時,我有時會得到(length,1)
,有時會得到(length,)
。它看起來像是一個列與行向量......不過,它似乎並沒有改變任何有關數組本身[除了一些函數抱怨,當我通過形狀(length,1)
]數組。一維陣列形狀(長度,)與(長度,1)與(長度)
這兩者有什麼區別?
爲什麼形狀不正好,(length)
?
當我使用numpy.shape()
檢查數組的形狀時,我有時會得到(length,1)
,有時會得到(length,)
。它看起來像是一個列與行向量......不過,它似乎並沒有改變任何有關數組本身[除了一些函數抱怨,當我通過形狀(length,1)
]數組。一維陣列形狀(長度,)與(長度,1)與(長度)
這兩者有什麼區別?
爲什麼形狀不正好,(length)
?
的要點是,說的載體可以看出無論是作爲
你可使用np.squeeze
添加使用[:, np.newaxis]
語法或尺寸下降尺寸:
>>> xs = np.array([1, 2, 3, 4, 5])
>>> xs.shape
(5,)
>>> xs[:, np.newaxis].shape # a matrix with only one column
(5, 1)
>>> xs[np.newaxis, :].shape # a matrix with only one row
(1, 5)
>>> xs[:, np.newaxis, np.newaxis].shape # a 3 dimensional array
(5, 1, 1)
>>> np.squeeze(xs[:, np.newaxis, np.newaxis]).shape
(5,)
(長度)數組是一個數組,其中每個元素是一個數字,並且數組中有長度元素。 (length,1)數組是一個也有長度元素的數組,但每個元素本身都是一個具有單個元素的數組。例如,以下使用長度= 3。
>>> import numpy as np
>>> a = np.array([[1],[2],[3]])
>>> a.shape
>>> (3, 1)
>>> b = np.array([1,2,3])
>>> b.shape
>>> (3,)
它是明確的'列',而不是一排? (也就是說它可以被看作'有一行的矩陣'嗎?) – DilithiumMatrix
@zhermes'xs [:,np.newaxis]'是一列矩陣,'xs [np.newaxis,:]'是一行矩陣 –