当前位置: 首页 > 编程笔记 >

使用python实现多维数据降维操作

丘普松
2023-03-14
本文向大家介绍使用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实现多维数据降维操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍JavaScript实现数组降维详解,包括了JavaScript实现数组降维详解的使用技巧和注意事项,需要的朋友参考一下 二维数组降维 二维数组只有两个维度,降维比较简单,也不用考虑太复杂的算法逻辑,我们看一下二维数组降维的几种方法; 遍历降维 此方法思路简单,利用双重循环遍历二维数组中的每个元素并放到新数组中。 使用concat 利用concat方法,可以将双重循环简化为单重循环:

  • 1 奇异值分解   在了解特征值分解之后,我们知道,矩阵A不一定是方阵。为了得到方阵,可以将矩阵A的转置乘以该矩阵。从而可以得到公式:   现在假设存在M*N矩阵A,我们的目标是在n维空间中找一组正交基,使得经过A变换后还是正交的。假设已经找到这样一组正交基:   A矩阵可以将这组正交基映射为如下的形式。   要使上面的基也为正交基,即使它们两两正交,那么需要满足下面的条件。   如果正交基v选择

  • 本文向大家介绍写一个方法把多维数组降维相关面试题,主要包含被问及写一个方法把多维数组降维时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍Python 实现取多维数组第n维的前几位,包括了Python 实现取多维数组第n维的前几位的使用技巧和注意事项,需要的朋友参考一下 现在我们有一个shape为(7352, 9, 128, 1)的numpy数组。 想要取出第2维的前三个数据,构成新数组(7352, 3, 128, 1) 我的思想是:将第2维数据转置(transpose)到第一维,再用切片(slice)取出前三个数据,

  • 很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不仅让训练过程变得非常缓慢,同时还很难找到一个很好的解,我们接下来就会遇到这种情况。这种问题通常被称为维数灾难(curse of dimentionality)。 幸运的是,在现实生活中我们经常可以极大的降低特征维度,将一个十分棘手的问题转变成一个可以较为容易解决的问题。例如,对于 MNIST 图片集(第 3 章中提到):图片四周

  • 很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不仅让训练过程变得非常缓慢,同时还很难找到一个很好的解,我们接下来就会遇到这种情况。这种问题通常被称为维数灾难(curse of dimentionality)。 幸运的是,在现实生活中我们经常可以极大的降低特征维度,将一个十分棘手的问题转变成一个可以较为容易解决的问题。例如,对于 MNIST 图片集(第 3 章中提到):图片四周