1 map()
map() 会根据提供的函数对指定序列做映射;
map(function, iterable, ...)
参数:
- function -- 函数
- iterable -- 一个或多个序列
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表;
在python 3中用法:
>>> def square(x) :
... return x ** 2
...
# 返回迭代器
>>> map(square, [1,2,3,4,5])
<map object at 0x7fe223869520>
#使用 list() 转换为列表
>>> list(map(square, [1,2,3,4,5]))
[1, 4, 9, 16, 25]
# 使用 lambda 匿名函数
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]
2 numpy -- flatten()
flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组;
flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用!
a.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 ;
a.flatten().A:a是个矩阵,降维后还是个矩阵,矩阵.A(等效于矩阵.getA())变成了数组;
>>> from numpy import *
>>> a=array([[1,2],[3,4],[5,6]])
>>> a
array([[1, 2],
[3, 4],
[5, 6]])
>>> a.flatten() #默认按行的方向降维
array([1, 2, 3, 4, 5, 6])
>>> a.flatten('F') #按列降维
array([1, 3, 5, 2, 4, 6])
>>> a.flatten('A') #按行降维
array([1, 2, 3, 4, 5, 6])
>>> a=mat([[1,2,3],[4,5,6]])
>>> a
matrix([[1, 2, 3],
[4, 5, 6]])
>>> a.flatten()
matrix([[1, 2, 3, 4, 5, 6]])
>>> y=a.flatten().A
>>> y
array([[1, 2, 3, 4, 5, 6]])
>>> shape(y)
(1, 6)
>>> shape(y[0])
(6,)
>>> a.flatten().A[0]
array([1, 2, 3, 4, 5, 6])