我认为你需要使用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)
Run Code Online (Sandbox Code Playgroud)
首先创建一个请求大小的数组,类型为int(我假设你知道你想要4个字节的整数,这是np.int将在大多数平台上提供的).第3行使用广播,以便为每一行(a [0],a [1],... a [1233])分配np.linspace行的值(它为您提供[1,...的数组]. ......,5678].如果你想要F存储,那就是专栏:
a = np.empty((1234, 4567), dtype=np.int, order='F')
...
Run Code Online (Sandbox Code Playgroud)
矩阵a只占用C中一个数组的少量内存,至少对于计算,数组的索引功能要比python列表好得多.
nitpick:numeric是python的旧数字包的名称 - 推荐名称是numpy.
| 归档时间: |
|
| 查看次数: |
676 次 |
| 最近记录: |