Python学习(2)---Python列表、Numpy数组和矩阵的区别

       (一)基本定义

         1.Python列表:列表由一系列按特定顺序排列的元素组成,可以将不同类型的元素加入到列表中,其中各元素之间可以没有任何关系,并且不存在优先级。在Python中,用方括号([ ])表示列表(list),并用逗号隔开其中的元素,主要用于顺序存储元素。列如:

bicycles = ['trek', 'cannondale', 'redline', 'specialized', 1, 2, 3]

        2.Numpy数组通常是指ndarray(N-dimensional array),该多维数组中所有元素的数据类型是相同的,并且存在优先级问题,其中字符型 > 浮点型 > 整形。

a = np.array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])
print(a)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

       3. Numpy矩阵是2维的ndarray,属于包含于数组的分支,因此矩阵具有数组的所有特性。

Python学习(2)---Python列表、Numpy数组和矩阵的区别_第1张图片

        (二)区别与联系

        1. 数组、列表和矩阵均可通过索引获取元素;

        2. 列表中元素不支持数学运算,数组和矩阵均支持;

        3. 数组遵循逐个元素运算,不主持矩阵乘法运算;

        4. 矩阵运算支持较多数学运算操作,列如转置,共轭以及求逆等;

        5. 在进行归约运算时,数组的维度会发生变化,但矩阵不会;

Python学习(2)---Python列表、Numpy数组和矩阵的区别_第2张图片

 倒数第四行:数据的维度发生了变化。

         6. nadarray要比list节省存储空间,效率更高,主要原因是list存放的是对象的引用,调用是通过引用找到具体的对象,而且这些对象所在的物理地址不是连续的,具体示意如下:

Python学习(2)---Python列表、Numpy数组和矩阵的区别_第3张图片

 相比于数组,列表在访问数据时需要多跳转一次,并且对具体数据的访问不是按秩访问的,故此效率以及空间利用率均低于数组。

参考资料:

1.https://blog.csdn.net/wyl1813240346/article/details/79806207

2.https://blog.csdn.net/woshisunyizhen/article/details/105101083

3.https://www.cnblogs.com/yibeimingyue/p/13762874.html

4. 《python编程从入门到实践第2版》第3章

你可能感兴趣的:(python,机器学习,人工智能)