当前位置: 首页 > news >正文

numpy 中的降维与升维

升维(Dimensionality Augmentation):增加数据的维度,通常用于提供更多信息或从不同的角度看待数据。

降维(Dimensionality Reduction):减少数据的维度,通常用于简化数据或去除无关紧要的特征。

降维

最近在飞桨学习机器学习的时候发现一个概念让人摸不清头脑,计算梯度的时候使用了 np.mean 来进行降维。

z = net.forward(x)
gradient_w=(z-y)* x
gradient_w=np.mean(gradient_w,axis=0)
gradient_w= gradient_w[:,np.newaxis]
gradient_b=(z-y)
gradient_b=np.mean(gradient_b)
#此处b是一个数值,所以可以直接用np.mean得到一个标量
gradient_b
142.50289323156107

在这里插入图片描述
‌numpy数组的维度(13,)和(13,1)的主要区别在于它们的维度和表示的数据结构。‌

当一个numpy数组的维度为(13,),它表示这是一个一维数组,只有一个索引维度,即数据只能通过一个单一的索引来进行访问。这种形状的数组通常用于表示一维的数据序列,如时间序列数据或简单的数值列表。在这种情况下,数组中的每个元素都可以通过一个单一的索引(从0到12)来访问。
相比之下,维度为(13,1)的数组是一个二维数组,但它只有一列。这种形状的数组在numpy中通常用于表示行向量,即它有一个行索引维度和一个列索引维度,尽管列维度只包含一个元素。这种形状的数组在数学和科学计算中特别有用,因为它允许对数据进行矩阵操作,即使这些矩阵实际上只有一行或一列。例如,一个(13,1)的数组可以看作是一个包含13个元素的列向量,每个元素都可以通过两个索引(一行和一列)来访问。
在这里插入图片描述
为什么降维?
1、随着数据维度不断降低,数据存储所需的空间也会随之减少。
2、低维数据有助于减少计算/训练用时。
3、一些算法在高维度数据上容易表现不佳,降维可提高算法可用性。
4、降维可以用删除冗余特征解决多重共线性问题。比如我们有两个变量:“一段时间内在跑步机上的耗时”和“卡路里消耗量”。这两个变量高度相关,在跑步机上花的时间越长,燃烧的卡路里自然就越多。因此,同时存储这两个数据意义不大,只需一个就够了。
5、降维有助于数据可视化。如果数据维度很高,可视化会变得相当困难,而绘制二维三维数据的图表非常简单。

减少数据的维度,通常用于简化数据或去除无关紧要的特征。

数组的降维

  1. array.ravel()
  2. np.squeeze(array)
  3. array.reshape(-1)
  4. array.flatten():返回源数据的副本

升维

增加数据的维度,通常用于提供更多信息或从不同的角度看待数据。
数组的升维

  1. np.atleast_2d(array) 转为二维数组
  2. np.atleast_3d(array) 转为三维数组
  3. array[:,np.newaxis] 升维一次 n行一列
  4. array[np.newaxis,:] 升维一次 一行n列
  5. array.reshape(-1,1) 变成n行一列
  6. array.reshape(1,-1) 变成一行n列
  7. np.expand_dims(a, axis)

参考:

https://www.jb51.net/python/3024442as.htm
https://huaweicloud.csdn.net/6380889adacf622b8df89aba.html


http://www.mrgr.cn/news/13198.html

相关文章:

  • 无人机之穿越机基础知识
  • select epoll搭建并发式服务器
  • 高效的时间序列可视化:减少认知负荷获得更清晰的洞察
  • 力扣45.跳跃游戏II
  • WEB开发---使用HTML CSS开发网页实时显示当前日期和时间
  • C\C++ Sqlite3使用详解
  • linux查看系统安装时间命令,找出Linux操作系统(OS)安装日期和时间
  • “random_shuffle”:不是“std”错误的成员
  • Leetcode面试经典150题-5.最长回文子串
  • 0828作业+梳理
  • 【图像去噪】论文复现:代替ReLU!Pytorch实现即插即用激活函数模块xUnit,并插入到DnCNN中实现xDnCNN!
  • C++day2
  • Lottie动画
  • 【Material-UI】深入了解Radio Group中的useRadioGroup Hook
  • Markdown 美化 Github 个人主页
  • 使用Python 访问Neo4J 数据库
  • mp总结 mybatisPlus
  • 07 - procfs
  • 【线程池】
  • 【计算机网络】计算机网络的性能指标