phi*_*sta 2 python arrays list matrix multidimensional-array
我试图理解人们称之为矩阵的内容与人们在列表中调用列表的内容之间的差异.
它们是相同的,一旦创建,你可以对它们做同样的事情(在它们内部以相同的方式引用元素,等等).
例子:
在列表中制作列表:
ListsInLists = [[1,2],[3,4],[5,6]]
Run Code Online (Sandbox Code Playgroud)
制作一个多维数组:
np.random.rand(3,2)
Run Code Online (Sandbox Code Playgroud)
堆叠数组以制作矩阵:
Array1 = [1,2,3,4]
Array2 = [5,6,7,8]
CompleteArray = vstack((Array1,Array2))
Run Code Online (Sandbox Code Playgroud)
列表列表与二维Numpy数组非常不同.
Numpy数组更具限制性,但提供更高的性能和内存效率.它们还为矢量化数学运算提供方便的功能.
在内部,列表表示为指向任意Python对象的指针数组.当在列表的末尾重复附加时,该数组使用指数过度分配来实现线性性能.另一方面,Numpy数组通常表示为C数组.
(这个答案不包括Numpy对象数组的特殊情况,它也可以容纳任何类型的Python对象.它们很少使用,因为它们具有Numpy数组的限制,但没有性能优势.)