Py深度学习基础|Numpy基础总结

注:本文来自菜鸟教程学习总结


 一、数组属性

NumPy 的数组中比较重要 ndarray 对象属性有:

注意:使用reshape后,数组的结构(即元素的排列顺序和内在连接)没有改变,但因为返回的是一个视图,b改变其值会对原数组有影响:

 

二、创建数组

主要介绍几个常用函数:

1.numpy.empty

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

2. numpy.zeros

创建指定大小的数组,数组元素以 0 来填充:

3. numpy.ones

同理,创建指定大小的数组,数组元素以1 来填充

4.numpy.zeros_like

numpy.zeros_like 用于创建一个与给定数组具有相同形状的数组,数组元素以 0 来填充:

5. numpy.ones_like

同上,数组元素以1填充

三、从已有数组创建数组

1. numpy.asarray

类似于numpy.array,但 numpy.asarray 参数只有三个:

numpy.asarray(a, dtype = None, order = None)

 参数解释如下:

a任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
dtype数据类型,可选
order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

如:

 

四、从数值范围创建数组

1.numpy.arange

使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

参数说明:

参数描述
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。

  

2.numpy.linspace

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的.

3.numpy.logspace

numpy.logspace 函数用于创建一个于等比数列。

五、切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

也可以通过冒号分隔切片参数 start:stop:step 来进行切片操作:

 注:冒号的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。

多维数组同样适用上述索引提取方法,如下提取数组中第二行及以后的所有:

六、高级索引

1.整数数组索引

整数数组索引是指使用一个数组来访问另一个数组的元素。这个数组中的每个元素都是目标数组中某个维度上的索引值。

以下实例获取数组中 (0,0),(1,1) 和 (2,0) 位置处的元素。

import numpy as np x = np.array([[1,  2],  [3,  4],  [5,  6]]) 
y = x[[0,1,2],  [0,1,0]]  
print (y)

输出结果为:[1 4 5]

 可以借助切片 : 或 … 与索引数组组合。如下面例子:

2. 布尔索引 

我们可以通过一个布尔数组来索引目标数组。布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组。以下实例获取大于 5 的元素:

 3. 花式索引

花式索引指的是利用整数数组进行索引。花式索引根据索引数组的值作为目标数组的某个轴的下标来取值。

对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应位置的元素,如果目标是二维数组,那么就是对应下标的行。花式索引跟切片不一样,它总是将数据复制到新数组中。

 

七、广播机制(Broadcast)

广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。最简单的情况,如果两个数组 a 和 b 形状相同(a.shape == b.shape),那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。

 广播条件简单理解:对两个数组,分别比较他们的每一个维度(若其中一个数组没有当前维度则忽略),满足:

  • 数组拥有相同形状。
  • 当前维度的值相等。
  • 当前维度的值有一个是 1。

若条件不满足,不能广播。

 

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

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

相关文章

机器学习笔记 - 使用 OpenCV 的结构化森林进行边缘检测

一、简述 边缘检测是计算机视觉领域中一项非常重要的任务。这是许多纯计算机视觉任务(例如轮廓检测)的第一步。即使涉及深度学习,较深层也首先学习识别边缘,然后再学习图像的复杂特征。所以,我们可以说边缘检测在计算机视觉领域非常重要。拥有良好且高效的图像边缘检测算法…

Flink KafkaSink分区配置的不同版本对比

Flink KafkaSink分区配置的不同版本对比 在不同版本的Flink中,KafkaSink 分区默认配置方式可能会有一些变化。以下是摘自Flink官方文档不同版本的原文: 1. Flink版本:1.12~1.19 Sink 分区 # 配置项 sink.partitioner 指定了从 Flink 分区到 …

Yoshua Bengio独家专访:我不想把大模型未来押注在Scaling Law上,AGI路上要“注意安全”...

导读 漫长的30年间,数度从主流方向的超然出走,是Bengio的制胜秘诀。这种不盲从主流的风格体现在他研究生涯的方方面面。 90年代末期,神经网络被打入冷宫,Bengio的论文多次遭拒,连学生们也开始担心,和他一起…

【ESP32 手机配网教程】

【ESP32 手机配网教程】 1. 前言2. 先决条件2.1 环境配置2.2 所需零件3.3 硬件连接步骤 3. Web热点手动配网3.1. 准备工作3.2. 编译上传程序3.3. 进行手动配网 4. BLE无线配网4.1. 准备工作**4.2. 编译上传程序4.3. 使用手机APP进行无线配网 5. 总结 1. 前言 欢迎使用ESP32进行…

python将xml格式文件转成png或者pdf格式

本文主要介绍运行NCCL代码时输出的xml文件该如何转成更加容易观看的图格式 如下是举例&#xff0c;服务器上的PCIE相关的topo xml 文件 <system version"1"><cpu numaid"1" affinity"ffffff00,0000ffff,ff000000" arch"x86_64&q…

Next.js多页布局getLayout使用方法

目录 官网解释 直接上代码使用方法展示 1.page页面​编辑 2._app.js页面,也放在pages中​编辑 效果展示 有getLayout展示getLayout返回的页面布局 无getLayout展示默认布局 官网解释 如果需要多个布局&#xff0c;可以添加一个属性getLayout添加到您的页面&#xff0c;允…

判断任意输入年份是闰年还是普通闰年还是平年

判断任意输入年份是闰年还是普通闰年还是平年 判断输入年份是否为世纪闰年&#xff08;能被100整除但不能被400整除&#xff09;或普通闰年&#xff08;能被4整除但不能被100整除&#xff0c;或者能被400整除&#xff09;。用户输入一个年份后&#xff0c;程序会判断该年份是世…

第五届上海市青少年算法竞赛 T4 夹心饼干(思维、数学)

第四题&#xff1a;T4夹心饼干 标签&#xff1a;思维、数学题意&#xff1a;给定一个数列 a 1 , a 2 , a 3 . . . , a n a_1,a_2,a_3...,a_n a1​,a2​,a3​...,an​&#xff0c;请求出在这个序列中&#xff0c;能挑出多少个三个数 a i , a j , a k a_i,a_j,a_k ai​,aj​,ak​…

Python数据可视化和处理常用库(如Matplotlib、Seaborn)

Python是一种功能强大的编程语言&#xff0c;拥有许多用于数据可视化和处理的常用库。其中&#xff0c;Matplotlib和Seaborn是两个非常受欢迎的库&#xff0c;它们提供了丰富的功能和灵活的绘图选项。下面是一些关于这两个库的博文&#xff0c;可以帮助你更好地了解它们的使用方…

深入理解单实例设计模式:构建高效且可靠的应用

在软件工程领域&#xff0c;单实例&#xff08;Singleton&#xff09;设计模式是一种确保类只有一个实例并提供一个全局访问点的设计模式。这个概念在需要控制访问共享资源或者在整个应用中维护一致状态的场景下特别有用。本文将详细探讨单实例模式的实现、应用及其优缺点。 目…

2024华中杯数学建模挑战赛选题建议及各题思路来啦!

大家好呀&#xff0c;华中杯数学建模开始了&#xff0c;来说一下初步的选题建议吧&#xff1a; 首先定下主基调&#xff0c; 本次华中杯推荐选择C题目。难度方面A&#xff1e;B&#xff1e;C&#xff0c;A是优化类题目&#xff0c;难度较高&#xff0c;建议参考23国赛A优秀论…

【方案探讨】 出现java.io.IOException解决方法

出现java.io.IOException解决方法 解决问题的博客&#xff1a;探索新思路&#xff0c;共同成长 &#x1f331;壹、出现背景贰、排查方向叁、场景复现1、放单个大文件2、修改后端请求其他服务器时间3、多次请求多个文件4、单词请求多个文件 肆、解决方案谢谢您的阅读和支持&…

深入探索:Facebook如何重塑社交互动

在当代社会中&#xff0c;社交互动已成为日常生活的核心组成部分。而在众多的社交媒体平台中&#xff0c;Facebook凭借其卓越的用户基础和创新的功能&#xff0c;已经成为了全球最大的社交媒体平台。本文将深入探讨Facebook如何通过其独特的特性和功能&#xff0c;重塑了人们的…

Elasticsearch:使用向量化和 FFI/madvise 加速 Lucene

作者&#xff1a;来自 Elastic Chris Hegarty 在 Lucene 领域&#xff0c;我们一直热切地采用新版本 Java 的功能。这些功能使 Lucene 更接近 JVM 和底层硬件&#xff0c;从而提高了性能和稳定性。这使得 Lucene 保持现代化和具有竞争力。 Lucene 的下一个主要版本&#xff0…

Springboot+Vue线上教学平台赠送配套文档1w字

SpringbootVue线上教学平台赠送配套文档1w字 项目描述 线上教学平台是一个功能丰富的在线教育工具&#xff0c;它为学生、教师和管理员提供了一个集成的学习、交流和管理环境。以下是关于该平台各项功能的简要介绍&#xff1a; 前台门户&#xff1a;前台门户是平台的门面&#…

实战|哈尔滨等保2.0 Linux主机测评过程之身份鉴别

一、身份鉴别 a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换。 输入 more /etc/shadow,得知系统所有用户&#xff0c;此语句字段格式有九段。 第一字段&#xff1a;用户名&#xff08;也被称为登录名…

jmeter-while控制器用法

condition中添加while结束循环的条件&#xff0c;以下语句的意思是&#xff0c;当percent等于100时&#xff0c;就跳出while循环继续执行 ${__javaScript("${percent}" ! 100)} 举例&#xff0c;以下方法是getPercent为一个引出的异步接口&#xff0c;该接口的返回包…

java如何实现rabbitmq的消息确认机制和消息持久化机制配置和示例

在Java中&#xff0c;使用RabbitMQ的客户端库&#xff08;通常是AMQP客户端库&#xff0c;如RabbitMQ的Java客户端&#xff09;可以方便地实现消息确认机制和消息持久化机制。以下是如何实现这两个机制的示例。 1、消息确认机制 RabbitMQ支持两种类型的确认&#xff1a;生产者…

Python编程小例子—石头、剪子、布游戏

random库的应用—石头、剪子、布游戏 Random标准库的用法 在Python中&#xff0c;random是一个标准库&#xff0c;提供了生成随机数的功能。以下是一些常见用法&#xff1a; 生成随机整数: import random# 生成指定范围内的随机整数 random_int random.randint(1, 100)生成…

HiveSql中的函数家族(二)

一、窗口函数 1、什么是窗口函数 在 SQL 中&#xff0c;窗口函数&#xff08;Window Functions&#xff09;是一种特殊的函数&#xff0c;它允许在查询结果集的特定窗口&#xff08;通常是一组行&#xff09;上执行聚合、分析和计算操作&#xff0c;而无需聚合整个结果集。窗口…