numpy.ndarray.flat/flatten 與 Spark 下的 flatMap
阿新 • • 發佈:2018-12-25
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
(2)numpy.ndarray.flatten() 是函式呼叫,可以指定平坦化的引數。
ndarray.flatten(order
可選引數,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:最後將所有物件合併為一個物件