對(duì)于使用習(xí)慣matlab的人來說, 一維數(shù)組是一下很難理解的. 比如
A=[1;2;3;4]
這里的一維數(shù)組, 也可以說是4X1的二維數(shù)組.
但是python里并不這么認(rèn)為, python里規(guī)定, 一維數(shù)組就是一維, 維度是(4,)不存在說是特殊的一維那種情況. 相反地, python里規(guī)定了一個(gè)matrix類, 對(duì)應(yīng)著二維數(shù)組, 而且指定定義二維. (現(xiàn)在已經(jīng)不推薦使用, 而是推薦不管多少維都統(tǒng)一使用array類).
因?yàn)閷?duì)于數(shù)據(jù)處理來說, 很多情況下二維已經(jīng)夠用了. 所以matlab一般都是用二維. 那么我們可以想一下, 如果可以說A是一個(gè)4X1的特殊二維數(shù)組, 那為什么不說A是一個(gè)特殊的4X1X1的三維數(shù)組? 以此類推, 就解釋不清了.
所以在python中, 一維就是一維, 對(duì)于一個(gè)一維數(shù)組
B=np.array([1,2,3,4])
來說, 無法取除了一維之外的其他屬性:
B[2,0]
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
但是我們可以對(duì)于二維數(shù)組C:
C = B.reshape((4, 1))
array([[1],
[2],
[3],
[4]])
C是一個(gè)(4,1)的二維矩陣, 可以取它的第二維屬性:
C[2,0]
3
希望大家能夠?qū)Υ擞兴w會(huì).
延伸閱讀:
- 關(guān)于一維數(shù)組和二維數(shù)組的儲(chǔ)存不同: Difference between numpy.array shape (R, 1) and (R,)
- Python中array和matrix計(jì)算的不同: What are the differences between numpy arrays and matrices? Which one should I use?
- Why Numpy has dimension (n,) instead of (n,1) only [duplicate]