python中的列矩阵表示

问题描述:

如何在python中表示列矩阵和行矩阵?python中的列矩阵表示

A =[1,2,3,4] 

1 
2 
3 
4 
+0

这取决于你确切需要什么,试着向我们解释为什么你需要这个。 Python中的列表总是像行矩阵,但使用不同的数据类型,你可以拥有你所需要的。 – 2013-03-28 06:42:51

+0

我有2个矩阵一行矩阵和其他列矩阵。我想乘这两个。 – diva 2013-03-28 06:45:48

+0

检查这个http://*.com/questions/10508021/matrix-multiplication-in-python – 2013-03-28 06:47:08

矩阵是二维结构。在普通的Python中,矩阵的最自然的表示形式是列表列表。

所以,你可以写一个行矩阵为:

[[1, 2, 3, 4]] 

,写一个列矩阵为:

[[1], 
[2], 
[3], 
[4]] 

这很好地延伸到MXN矩阵,以及:

[[10, 20], 
[30, 40], 
[50, 60]] 

有关如何开发af的示例,请参阅matfunc.py纯Python中的矩阵包。 它的文档是here

这里是用列表中,列出了表示在普通的Python做矩阵乘法的采空例如:

>>> from pprint import pprint 
>>> def mmul(A, B): 
     nr_a, nc_a = len(A), len(A[0]) 
     nr_b, nc_b = len(B), len(B[0]) 
     if nc_a != nr_b: 
      raise ValueError('Mismatched rows and columns') 
     return [[sum(A[i][k] * B[k][j] for k in range(nc_a)) 
       for j in range(nc_b)] for i in range(nr_a)] 

>>> A = [[1, 2, 3, 4]] 
>>> B = [[1], 
     [2], 
     [3], 
     [4]] 

>>> pprint(mmul(A, B)) 
[[30]] 

>>> pprint(mmul(B, A), width=20) 
[[1, 2, 3, 4], 
[2, 4, 6, 8], 
[3, 6, 9, 12], 
[4, 8, 12, 16]] 

正如另一位受访者提到,如果你认真做基质的工作,它你应该安装numpy,它可以直接支持许多矩阵操作:

+1

人们可能会考虑使用numpy以及... – mgilson 2013-03-28 06:48:55

+1

OP似乎并没有准备好让这个跳跃: - ) – 2013-03-28 06:51:32

+2

不要太早开始。说实话,我认为使用numpy数组会比试图用列表复制它们的功能要容易得多。 – mgilson 2013-03-28 06:52:40