2016-07-24 145 views
0

我在處理列表列表時發現了三個有用的操作。矩陣術語

mat=[list('abc'),list('pqr'),list('xyz')] 

mat=[x for sl in mat for x in sl] 1.( 「平坦」)

  • mat=list(zip(*mat))(調換)

  • mat=mat[::-1]( 「翻轉」;第一變後者且反之亦然)

  • 什麼是特定術語進行這些操作,以及我忽略哪些關鍵操作?

    +0

    我想你可以稱之爲列表轉換。另一個有用的轉換是旋轉:從列表的一端移動項目並將它們添加到另一端;在Python中常用的方法是通過切片。 –

    +0

    順便說一句,你可以使用'map'來完成你的初始構造,儘管只有3個字符串沒有太大的區別。 'mat = list(map(list,('abc','pqr','xyz')))'。此外,'list(zip(* [iter('abdpqrxyz')] * 3))'或'list(map(list,zip(* [iter('abdpqrxyz')] * 3)))'如果inner序列必須是列表而不是元組。 –

    回答

    0
    1. 在我的世界的角落,這通常被稱爲「光柵化」的矩陣(雖然我們可能被挪用從圖像處理術語)。 Numpy稱它爲ravel()。 Matlab將其稱爲「向量化」並使用​​(搜索A(:))。
    2. 轉置是標準的數學和數字名稱。
    3. Numpy和Matlab都稱這個fliplr(左 - 右)和flipud(上 - 下)。

    有很多其他的矩陣操作,一些更常見,一些更少。看看Numpy/Matlab/Julia /等。文檔會打動你的腦海。