我试图理解人们所说的矩阵和人们所说的列表中的列表之间的区别。
它们是否相同,一旦创建,您就可以对它们执行相同的操作(在其中以相同的方式引用元素等)。
例子:
在列表中创建列表:
ListsInLists = [[1,2],[3,4],[5,6]]
制作多维数组:
np.random.rand(3,2)
堆叠数组以形成矩阵:
Array1 = [1,2,3,4]
Array2 = [5,6,7,8]
CompleteArray = vstack((Array1,Array2))
列表的列表与二维 Numpy 数组有很大不同。
- 列表具有动态大小,可以容纳任何类型的对象,而数组具有固定大小和统一类型的条目。
- 在列表列表中,每个子列表可以具有不同的大小。数组沿每个轴具有固定的维度。
- 数组存储在连续的内存块中,而列表中的对象可以存储在堆上的任何位置。
Numpy 数组的限制更多,但提供更高的性能和内存效率。它们还为矢量化数学运算提供了方便的函数。
在内部,列表表示为指向任意 Python 对象的指针数组。当在列表末尾重复追加时,数组使用指数过度分配来实现线性性能。另一方面,Numpy 数组通常表示为 C 数字数组。
(这个答案不包括 Numpy 对象数组的特殊情况,它也可以保存任何类型的 Python 对象。它们很少被使用,因为它们有 Numpy 数组的限制,但不具有性能优势。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)