天天看點

python資料降維_使用python實作多元資料降維操作

一,首先介紹下多元清單的降維

def flatten(a):

for each in a:

if not isinstance(each,list):

yield each

else:

yield from flatten(each)

if __name__ == "__main__":

a = [[1,2],[3,[4,5]],6]

print(list(flatten(a)))

二、這種降維方法同樣适用于多元疊代器的降維

from collections import Iterable

def flattern(a):

for i in a:

if not isinstance(i,Iterable) or isinstance(i,str):

yield i

else:

yield from flattern(i)

if name == "main":

a = [[1,2],(3,4,tuple(5,)),["6,7,8"],[9,range(10,20,1)]]

print(list(flattern(a)))

iterable:可疊代的,疊代器,在Python中iterable被認為是一個對象,這個對象可以一次傳回它的一個成員(也就是對象裡面的元素),Python中的string,list,tuple,dict,file,xrange都是可疊代的,都屬于iterable對象,可疊代的對象都是可以周遊的,實際上Python中有很多iterable類型是使用iter()函數來生成的。

補充:将一個多元數組徹底的降維

廢話不多說,直接上代碼

const flattenDeep = arr =>

Array.isArray(arr)

? arr.reduce((a, b) => [...a, ...flattenDeep(b)], [])

: [arr];

以上這篇使用python實作多元資料降維操作就是小編分享給大家的全部内容了,希望能給大家一個參考,也希望大家多多支援菜鳥教程www.piaodoo.com。