Python:多维数组 ("matrix") 与列表中的列表一样吗?

标签 python arrays list matrix multidimensional-array

我试图了解人们所说的矩阵和人们所说的列表中的列表之间的区别。

它们是否相同,一旦创建,您就可以对它们执行相同的操作(在它们中以相同的方式引用元素,等等)。

例子:

在列表中创建列表:

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 数组的限制,但没有性能优势.)

关于Python:多维数组 ("matrix") 与列表中的列表一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40895721/

相关文章:

python - Tensorflow TocoConverter 给出 toco_from_protos 错误

python - Scrapy Filter 重复从网页中提取的 URL

python - datetime.time(0, 0) 在 bool 上下文中计算为 False

c++ - 需要左值作为赋值的左操作数 - 数组

java - 当负输入时获取最大值 = 0

python - 如何正确实例化由本地和远程机器组成的 IPython 集群

javascript - 下划线从数组中删除某些属性上包含空值的对象

python - 如何将列表粘贴到多索引数据框中?

python - Pandas Dataframe - 值是列表

python - 给定一个包含多个元素的列表,如何获得完美三元组的数量?