簡體   English   中英

python中的列矩陣表示

[英]column matrix representation in python

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

A =[1,2,3,4]

 1
 2
 3
 4

矩陣是二維結構。 在普通的Python中,矩陣最自然的表示形式是列表列表。

因此,您可以將行矩陣編寫為:

[[1, 2, 3, 4]]

並將列矩陣寫為:

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

這也很好地擴展到了mxn矩陣:

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

有關如何在純Python中開發完整矩陣包的示例,請參見matfunc.py 它的文檔在這里

這是一個使用列表列表表示形式在純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 ,它直接支持許多矩陣操作:

這是我實現的矩陣函數,它需要矩陣的行數,列數和起始值

def matrix(rows, cols, start=0):
    return [[c + start + r * cols for c in range(cols)] for r in range(rows)]

用法:

>>> m = matrix(5, 1)
>>> m
[[0], [1], [2], [3], [4]]
>>> m = matrix(3, 3, 10)
>>> m
[[10, 11, 12], [13, 14, 15], [16, 17, 18]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM