python中二维阵列的变换实例
2014-10-09 16:33
423 查看
先看如下代码:
arr = [ [1, 2, 3], [4, 5, 6], [7, 8,9], [10, 11, 12]] print map(list, zip(*arr)) print '_-------------------------------------------------' print [[r[col] for r in arr] for col in range(len(arr[0]))]
运行结果如下:
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] _------------------------------------------------- [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
这里解释一下:
1. 第一种方法:map(list, zip(*arr))
zip([iterable, ...])
This function returns a list of tuples, where the i-th tuple contains thei-th element from each of the argument sequences or iterables.
zip()
这个函数返回一个元组的列表,其中的第i个元组包含从参数传进来的队列的每一个参数的元素的的第I个元素
再举个例子说明一下吧:
>>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> zipped = zip(x, y) >>> zipped [(1, 4), (2, 5), (3, 6)]
实际上zip(*arr)返回的就是[(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)],只不过它的每个元素是元组
map(func, list):
对list中的每个元素调用func方法,返回列表
参数*arr 是python用于传递任意基于位置的参数的语法
2. 第二种方法: [[r[col] for r in arr] for col in range(len(arr[0]))]
内层推导改变的是(从行中)选出的元素, 外层推导则影响了选择子(即列)
希望本文所述对大家的Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- python中二维阵列的变换实例
- python中二维阵列的变换
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)
- python二维列表一维列表的互相转换实例
- Python 类实例化时变换实例的类
- python中的二维列表实例详解
- Python中max函数用于二维列表的实例
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)
- python中的二维列表(实例)
- python numpy 显示图像阵列的实例
- Python k-均值聚类算法二维实例
- [Python] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- spark--二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- 【python】numpy库ndarray多维数组的类型变换 .astype()与向列表的转换tolist()详解与实例
- Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
- 【python】numpy库ndarray多维数组的维度变换方法:reshape、resize、swapaxes、flatten等详解与实例