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

向量化操作

向量化操作:
向量化操作是指利用数组操作而不是显式的循环来进行计算,这样可以充分利用底层优化和并行处理,从而提高计算效率。
例如这一段代码

num_test = X.shape[0]
num_train = self.X_train.shape[0]
dists = np.zeros((num_test, num_train))
for i in range(num_test):######################################################################## TODO:                                                               ## Compute the l2 distance between the ith test point and all training ## points, and store the result in dists[i, :].                        ## Do not use np.linalg.norm().                                        ######################################################################### *****START OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****dists[i] = np.sum((X[i] - self.X_train)**2, axis=1)**0.5# *****END OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****

假设我们有如下的示例:

# 测试数据集(2个样本,每个样本有2个特征)
X = np.array([[1, 2], [3, 4]])# 训练数据集(3个样本,每个样本有2个特征)
self.X_train = np.array([[1, 0], [0, 1], [1, 1]])

假设 i = 0 时,测试样本是 X[0] = [1, 2]。

计算 X[0] 与所有训练样本的差值:

[[1, 2] - [1, 0], [1, 2] - [0, 1], [1, 2] - [1, 1]]结果:
[[0, 2], [1, 1], [0, 1]]
np.sum((X[0] - self.X_train)**2, axis=1)**0.5

等价于

np.sum([[0, 2]**2, [1, 1]**2, [0, 1]**2], axis=1)**0.5结果:
np.sum([[0, 4], [1, 1], [0, 1]], axis=1)**0.5结果:
[4, 2, 1]**0.5结果:
[2,2, 1]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ELK企业级日志分析
  • Docker安装nacos(详细教程)
  • Linux-查看dd命令进度
  • layui自定义defaultToolbar 新增按钮 隐藏列表操作栏浮动部分
  • 山东航空小程序查询
  • C++ 栈( stack )学习
  • Element UI DatePicker选择日期范围区间默认显示前一个月和本月
  • Java字符串中的第一个唯一字符
  • Python机器学习入门:从理论到实践
  • 信号【Linux】
  • SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验
  • JMeter请求导出Excel
  • 排序二叉树(c++)
  • Go基础编程 - 12 -流程控制
  • DPKG(Debian / Ubuntu包管理工具)的深入探索与使用
  • 【技术性】Search知识
  • es6
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java读取Properties文件的六种方法
  • JSONP原理
  • leetcode46 Permutation 排列组合
  • Python爬虫--- 1.3 BS4库的解析器
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Xmanager 远程桌面 CentOS 7
  • XML已死 ?
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 阿里云应用高可用服务公测发布
  • 百度小程序遇到的问题
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 三分钟教你同步 Visual Studio Code 设置
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 1.Ext JS 建立web开发工程
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 进程与线程(三)——进程/线程间通信
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #{} 和 ${}区别
  • #QT项目实战(天气预报)
  • #控制台大学课堂点名问题_课堂随机点名
  • #数学建模# 线性规划问题的Matlab求解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (LeetCode C++)盛最多水的容器
  • (多级缓存)多级缓存
  • (二)pulsar安装在独立的docker中,python测试
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (原创)可支持最大高度的NestedScrollView
  • (自用)交互协议设计——protobuf序列化
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./configure,make,make install的作用
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net mvc部分视图
  • .NET MVC第五章、模型绑定获取表单数据
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...