2016-07-24 109 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 /等。文档会打动你的脑海。