对于使用习惯matlab的人来说, 一维数组是一下很难理解的. 比如
A=[1;2;3;4]
这里的一维数组, 也可以说是4X1的二维数组.
但是python里并不这么认为, python里规定, 一维数组就是一维, 维度是(4,)不存在说是特殊的一维那种情况. 相反地, python里规定了一个matrix类, 对应着二维数组, 而且指定定义二维. (现在已经不推荐使用, 而是推荐不管多少维都统一使用array类).
因为对于数据处理来说, 很多情况下二维已经够用了. 所以matlab一般都是用二维. 那么我们可以想一下, 如果可以说A是一个4X1的特殊二维数组, 那为什么不说A是一个特殊的4X1X1的三维数组? 以此类推, 就解释不清了.
所以在python中, 一维就是一维, 对于一个一维数组
B=np.array([1,2,3,4])
来说, 无法取除了一维之外的其他属性:
B[2,0]
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
但是我们可以对于二维数组C:
C = B.reshape((4, 1))
array([[1],
[2],
[3],
[4]])
C是一个(4,1)的二维矩阵, 可以取它的第二维属性:
C[2,0]
3
希望大家能够对此有所体会.
延伸阅读:
网友评论