Python中的矩阵
我刚开始学习Python,想从一个文件里读取数字,然后把它们存储在一个矩阵里,就像我在Fortran或C语言中那样。
for i
for j
data[i][j][0]=read(0)
data[i][j][1]=read(1)
data[i][j][2]=read(2)
...
...
我该怎么在Python中做到这一点呢?我看了一些资料,但对元组和类似的东西有点困惑。
如果你能给我指个类似的例子,那就太好了。
谢谢!
6 个回答
1
你可能想使用numpy这个库,并利用它里面的一个内置函数来处理输入输出,特别是loadtxt这个函数。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html
还有很多其他的函数可以用来处理输入输出:
4
Python本身不支持多维数组,不过你可以通过流行的numpy这个第三方库来实现。如果你想避免使用第三方库,那么在Python中,你可以使用“列表的列表的列表”的方式来模拟多维数组(每个“列表”都是一个一维的“向量”,可以存放任何类型的元素)。
举个例子:
data = [ [ [0 for i in range(4)] for j in range(5)] for k in range(6)]
这段代码创建了一个包含6个元素的列表,每个元素又是一个包含5个元素的列表,而这些元素又是包含4个0的列表——也就是说,这就是一个6 x 5 x 4的“3D矩阵”,你可以按照自己的需求来访问它。
for i in range(6):
for j in range(5):
data[i][j][0]=read(0)
data[i][j][1]=read(1)
data[i][j][2]=read(2)
接下来,你可以用一个神秘的函数read
来初始化每个最内层子列表中的前3个元素,听起来你可能想自己写这个函数(我也不太清楚这个函数具体要做什么——并不是“读取并返回下一个数字”,因为它需要一个神秘的参数,那它到底是干嘛的呢?)。