1. 程式人生 > 程式設計 >使用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,(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實現多維資料降維操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。