Skip to main content
 首页 » 编程设计

python之如何在python中获取矩阵

2025年05月04日10oomusou

我想创建一个大小为 1234*5678 的矩阵,并按行主要顺序填充 1 到 5678?>..!!

请您参考如下方法:

我认为您将需要使用 numpy 来有效地保存如此大的矩阵,而不仅仅是计算。你有 ~5e6 个 4/8 字节的项目意味着在纯 C 中已经有 20/40 Mb,在没有有效数据结构的 python 中是这个数的好几倍(行列表,每行一个列表)。

现在,关于你的问题:

import numpy as np 
a = np.empty((1234, 5678), dtype=np.int) 
a[:] = np.linspace(1, 5678, 5678) 

您首先创建一个具有请求大小的数组,类型为 int(我假设您知道您需要 4 字节整数,这是 np.int 在大多数平台上会为您提供的)。第 3 行使用广播,以便为每一行 (a[0], a[1], ... a[1233]) 分配 np.linspace 行的值(它为您提供 [1, .. ..., 5678])。如果要F存储,那就是column major:

a = np.empty((1234, 4567), dtype=np.int, order='F') 
... 

矩阵 a will 仅比 C 中的数组多占用少量内存,至少在计算方面,数组的索引能力比 python 列表好得多。

吹毛求疵:numeric 是 python 的旧数字包的名称 - 推荐名称是 numpy。