美文网首页python
Python之一维数组的探讨: 维度是(n,)还是(n,1)?

Python之一维数组的探讨: 维度是(n,)还是(n,1)?

作者: Qiangest | 来源:发表于2021-07-10 16:19 被阅读0次

    对于使用习惯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
    

    希望大家能够对此有所体会.

    延伸阅读:

    1. 关于一维数组和二维数组的储存不同: Difference between numpy.array shape (R, 1) and (R,)
    2. Python中array和matrix计算的不同: What are the differences between numpy arrays and matrices? Which one should I use?
    3. Why Numpy has dimension (n,) instead of (n,1) only [duplicate]

    相关文章

      网友评论

        本文标题:Python之一维数组的探讨: 维度是(n,)还是(n,1)?

        本文链接:https://www.haomeiwen.com/subject/tvbcpltx.html