机器学习11-numpy

1.NumPy是Python科学计算的核心库,它提供了一个高性能的多维数组对象,以及用于处理这些矩阵的处理工具;提供了方便和快速的N维数组的记录和计算方法,很多函数库都会用到,如SciPy、Tensorflow等。

import numpy as np 
a=np.array([1,2,3])
print(type(a))
print(a.shape)
print(a[0],a[1],a[2])
a[0]=5
b=np.array([[1,2,3],[4,5,6]])
print(b.shape)
print(b[0,0],b[0,1],b[1,0])

        为了方便预定义大量的数组,NumPy还提供了许多函数来创建矩阵,比如zeros默认数组为0,ones默认数组为1,full默认数组为自定义数。

import numpy as np 
a=np.zeros((2,2))
print(a)
b=np.ones((1,2))
print(b)
c=np.full((2,2),7)
print(c)
d=np.eye(3)
print(d)
e=np.random.random((2,2))
print(e)

        多维数组的切割在科学和统计上的计算是非常重要的,在这个程序中,将通过[数组行头,尾:数组列,尾]方式,把多维数组给切片(slicing)出来。

import numpy as np
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
row_r1=a[1,:]
row_r2=a[1:2,:]
print(row_r1,row_r1.shape)
print(row_r2,row_r1.shape)
col_r1=a[:,1]
col_r2=a[:,1:2]
print(col_r1,col_r1.shape)
print(col_r2,col_r2.shape)

        在NumPy预定数组的数据类型时,NumPy会根据数组数据,自动挑选合适的数据类型,也可以通过dtype来指定特定的数据类型。

import numpy as np
x=np.array([1,2])
print(x.dtype)
x=np.array([1.0,2.0])
print(x.dtype)
x=np.array([1,2],dtype=np.int64)
print(x.dtype)

        通过NumPy可以很轻松地做到数组的计算,如线性代数中的加、减、乘、除、平方等运算,甚至较复杂的矩阵相乘,也可以通过dot()函数来完成。

import numpy as np
x=np.array([[1,2],[3,4]],dtype=np.float64)
y=np.array([[5,6],[7,8]],dtype=np.float64)
print(x+y)
print(np.add(x,y))
print(x+10)
print(x-y)
print(x-[1,2])
print(x*y)
print(np.multiply(x,y))
print(x/y)
print(np.divide(x,y))
print(x**2)
print(np.sqrt(x))
print(x.dot(y))
print(np.dot(x,y))

NumPy提供的与统计有关的计算函数如下:

· sum,总和;

· max,最大;

· min,最小;

· cumsum,累加;

· mean,平均值;

· average,加权平均值;

· median,中间值;

· std,标准偏差;

· var,方差。

import numpy as np
x=np.array([[-1,2,3],[13,14,15]])
print(x)
print(np.sum(x))
print(np.sum(x,axis=0))
print(np.sum(x,axis=1))
print(np.max(x))
print(np.min(x))
print(np.average(x))
print(np.mean(x))
print(np.median(x))
print(np.std(x))
print(np.var(x))
print(x.T)

逻辑判断

import numpy as np
a=np.array([[-1,2,3],[13,14,15]])
bool_idx=((a%2)==0)
print(bool_idx)
print(a[bool_idx])
print(a[a>10])
print(a[a%2==1]*10)

不同尺寸的矩阵相加

在实际的NumPy下做矩阵数据的加、减、乘、除时,会遇到矩阵尺寸不一样的情况,那该怎么处理呢?本节实例提供了三种方法,将不同尺寸的矩阵相加。以运行结果来看,这三种方法求出来的结果一模一样。

方法一:一条一条地通过循环的方法处理。

方法二:使用tile()将小的矩阵依照比例放大。

方法三:交给NumPy自动处理。

import numpy as np
x=np.array([[1,2,3],[4,5,6]])
v=np.array([1,0,1])
y=np.empty_like(x)
for i in range(2):y[i,:]=x[i,:]+v
print(y)
v2=np.tile(v,(2,1))
print(v2)
print(x+v2)
print(x+v)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386613.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国科大作业考试资料《人工智能原理与算法》2024新编-第十三次作业整理

1、假设我们从决策树生成了一个训练集,然后将决策树学习应用于该训练集。当训练集的大小趋于无穷时,学习算法将最终返回正确的决策树吗?为什么是或不是? 本次有两个参考: 参考一: 当训练集的大小趋于无穷…

PVE环境中调整虚拟机磁盘大小

我的希望将PVE中的虚拟机磁盘调整一下,增加20GB。在查询了一些资料后,做一下总结教程。 环境是 PVE8.2.2 版本,虚拟机系统是centos7.9.2009-minimal, 安装系统时划分磁盘分区方式是默认分区方式(不同分区方式下&#…

聊聊RNN与Attention

前言 Attention Mechanism,称为注意力机制。基于Attention机制,seq2seq可以像我们人类一样,将“注意力”集中在必要的信息上。 Attention的结构 seq2seq存在的问题 seq2seq中使用编码器对时序数据进行编码,然后将编码信息传递…

playbooks 分布式部署 LNMP

1、环境配置 ansible 服务器 192.168.10.10nginx 服务器 192.168.10.20mysql 服务器 192.168.10.21php 服务器 192.168.10.22 2、安装 ansble #192.168.10.10节点 yum install -y epel-release #先安装 epel 源 yum install -y ansible配置主机清单 …

弹幕背后:B站UP主创作服务解析

引言 在B站,每一条飘过的弹幕都是一个故事的碎片,它们汇聚成一幅幅生动的社交画卷。这里,不仅仅是一个视频分享平台,弹幕背后更是一个充满活力的创作者生态系统。B站以其独特的弹幕文化,为创作者和观众之间搭建起了一座…

排序系列 之 希尔排序

!!!排序仅针对于数组哦本次排序是按照升序来的哦 介绍 英文名为ShellSort,又称“缩小增量排序”是直接插入排序算法的一种更高效的改进版本希尔排序是把记录按下标的指定步长分组,然后按照每组使用直接插入排序&#…

设计模式14-享元模式

设计模式14-享元模式 由来动机定义与结构代码推导特点享元模式的应用总结优点缺点使用享元模式的注意事项 由来动机 在很多应用中,可能会创建大量相似对象,例如在文字处理器中每个字符对象。在这些场景下,如果每个对象都独立存在&#xff0c…

三种使用 RocketMQ 达到消息一致的最佳实践

引言 Hi 你好,我是有清 RocketMQ 作为一款消息中间件,它的信息的投递与消费,通常都会与数据库的更新进行挂钩,那么如何保证 消息和数据库的更新是一个原子性的操作呢? 比如在我数据库更新失败的时候,不进行…

学习测试12-车(略)

系统讲解,可以在懂车帝网站去了解汽车结构

用AI做玄学壁纸!多篇笔记爆火,直接变现,轻松日入1000+

玄学是这两年赚钱的大风口,特别是80后、90后和00后这些年轻一代,他们对于个人财运、事业发展、爱情关系以及健康状态的预测和优化表现出浓厚的兴趣,希望通过这些方式来提升生活质量和实现个人目标。 今天就来给大家拆解其中一个赛道—用AI做…

信息安全工程师下午题

试题一(共 20 分) 阅读下列说明和图,回答问题 1 至问题 5,将解答填入答题纸的对应栏内。【说明】已知某公司网络环境结构主要由三个部分组成,分别是 DMZ 区、内网办公区和生产区,其拓扑结构如图 1-1 所示。信息安全部的王工正在按…

【BES2500x系列 -- RTX5操作系统】系统执行流程 -- 引导程序(boot loader)--(十)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

地球磁场的形成、变迁、特点

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

Unity多客户端位置同步信息

书接上文,有了一个基本的网络同步消息的服务器,客户端这边其实要做的工作就简单许多。 如果对位置信息的保密程度没那么高的话,可以放在客户端处理这部分的逻辑。 即一个客户端移动的时候,另一个客户端跟着移动,基本…

【电控笔记-xuan】各种估测器扰动估计性能比较

各种扰动观测器观测结果 蓝色: 扰动值 隆博戈估测器扰动补偿 论文53disturb扰动补偿 2order eso 观测

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据

带分隔符的字符串很好处理,只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为: 函数选板->字符串->附加字符串函数->分…

APT 安装软件详细教程

文章目录 APT 安装软件详细教程APT 概述APT 的基本命令APT 命令详解安装软件包更新和升级软件包删除软件包搜索和查找软件包管理软件包依赖清理软件包缓存APT 配置软件源配置自定义软件源常见问题及解决方案解决软件包依赖问题处理软件源错误其他常见问题使用 APT 的最佳实践总…

在Postman中引用JS库

前言 在做接口测试时,出于安全因素,请求参数需要做加密或者加上签名才能正常请求,例如:根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的,即在请求前使用JavaScript脚本对…

昇思MindSpore学习入门-自动混合精度

混合精度(Mix Precision)训练是指在训练时,对神经网络不同的运算采用不同的数值精度的运算策略。在神经网络运算中,部分运算对数值精度不敏感,此时使用较低精度可以达到明显的加速效果(如conv、matmul等&am…