您的位置:首页 > 编程语言 > Python开发

numpy.ndarray.flat/flatten 与 Spark 下的 flatMap

2016-04-01 10:03 323 查看

numpy.ndarray.flat/flatten

flat:使平坦,在编程上就对应着二维变一维。

(1)numpy.ndarray.flat 和 numpy,ndarray.T 一样不是函数调用,因此不可以跟函数调用操作符(也即一对小括号),因此也不可以指定平坦化的参数,比如按行平坦还是按列平坦,其默认的 flat 的动作是逐行(row-major)进行的。

>>> import numpy as np
>>> X = np.random.randint(0, 5, (2, 3))
array([[3, 0, 2],
[1, 2, 2]])
>>> x = X.flat
>>> x
<numpy.flatiter object at 0x9e82278>
# 不直接返回一维数组
# 但可直接索引
>>> x[0]
>>> x[3]
1
>>> np.array(x)
array([3, 0, 2, 1, 2, 2])


(2)numpy.ndarray.flatten() 是函数调用,可以指定平坦化的参数。

ndarray.flatten(order='C')


可选参数,order:

(1)’C’:C-style,行序优先

(2)’F’:Fortran-style,列序优先

(3)’A’:保持

(4)默认为’C’

Spark 下的 flatMap

Spark 下的 flatMap 就类似于 numpyt 对多维数组的 flat,也即按行序进行扁平化;

Spark 中 map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;

而flatMap函数则是两个操作的集合——正是“先映射后扁平化”:

操作1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象

操作2:最后将所有对象合并为一个对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: