numpy.array创建行数超过一行的矩阵为什么要用两层中括号?

Posted 昊虹图像算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy.array创建行数超过一行的矩阵为什么要用两层中括号?相关的知识,希望对你有一定的参考价值。

numpy.array创建行数超过一行的矩阵为什么要用两个双括号?

真正正确的原因我也不是很清楚,以后清楚了再写上来。

这里写个比较肤浅甚至不正确的解释:

array这个函数的原型如下:

array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0)

如果你不在矩阵的外围再加一层中括号,那么就写成了下面这样:

a = np.array([1, 2, 3, 4, 5],
             [6, 7, 8, 9, 10],
             [11, 12, 13, 14, 15],
             [16, 17, 18, 19, 20],
             [21, 22, 23, 24, 25])

我们知道,函数的参数与参数之间是用逗号隔开的,这样子的话araay就会认为第一个参数是[1, 2, 3, 4, 5],而第二个参数是[6, 7, 8, 9, 10],第三个参数是 [11, 12, 13, 14, 15],第四个参数是[16, 17, 18, 19, 20],第五个参数是 [21, 22, 23, 24, 25]。这显然不对嘛,而外层再加一个中括号则可以避免这个问题。下面这个写法才是正确的。
 

    a = np.array([[1, 2, 3, 4, 5],
                 [6, 7, 8, 9, 10],
                 [11, 12, 13, 14, 15],
                 [16, 17, 18, 19, 20],
                 [21, 22, 23, 24, 25]])

以上是关于numpy.array创建行数超过一行的矩阵为什么要用两层中括号?的主要内容,如果未能解决你的问题,请参考以下文章

numpy.array的shape属性 —— 2018-09-07

Python数据分析-Numpy

Numpy库:NumPy的数组类ndarray

如何在 Python 中从 Numpy 矩阵创建列表

Numpy Python 中的哪个对象适合矩阵操作? numpy.array 还是 numpy.matrix? [复制]

python使用numpy把向量扩展为矩阵?