(一)基本定义
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,属于包含于数组的分支,因此矩阵具有数组的所有特性。
(二)区别与联系
1. 数组、列表和矩阵均可通过索引获取元素;
2. 列表中元素不支持数学运算,数组和矩阵均支持;
3. 数组遵循逐个元素运算,不主持矩阵乘法运算;
4. 矩阵运算支持较多数学运算操作,列如转置,共轭以及求逆等;
5. 在进行归约运算时,数组的维度会发生变化,但矩阵不会;
倒数第四行:数据的维度发生了变化。
6. nadarray要比list节省存储空间,效率更高,主要原因是list存放的是对象的引用,调用是通过引用找到具体的对象,而且这些对象所在的物理地址不是连续的,具体示意如下:
相比于数组,列表在访问数据时需要多跳转一次,并且对具体数据的访问不是按秩访问的,故此效率以及空间利用率均低于数组。
参考资料:
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章