如何在python中使用矩阵?

Hic*_*ick 1 python

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

Dav*_*eau 6

我认为你需要使用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.