基于PyTorch深度学习实战入门系列-Numpy基础全

Numpy的使用

  1. 导入Numpy模块

    import numpy as np
    
  2. 创建数组(一维数组、小数数组、二维数组)

    # 创建一个一维数组
    n1 = np.array([1, 2, 3])
    # 创建一个含有小数的一维数组
    n2 = np.array([0.1, 0.2, 0.3])
    # 创建一个简单的二维数组
    n3 = np.array([[1, 2], [3, 4]])
    print("一维数组:", n1)
    print("小数数组:", n2)
    print("二维数组:\n", n3)
    

    输出:

    在这里插入图片描述

  3. 将列表转换为数组并指定类型

    list = [1, 2, 3]
    # 创建浮点型数组
    n1 = np.array(list, dtype=float)
    print("数组:", n1)
    print("数组类型:", n1.dtype)
    print("数组内第一个元素类型:", type(n1[0]))
    

    在这里插入图片描述

  4. 复制数组(需要使用copy参数)

    不使用时(其实是浅拷贝)更改n2数据n1同时改变了

    n1 = np.array([1, 2, 3])
    n2 = n1
    n2[1] = 5
    print(n1)
    print(n2)
    

    在这里插入图片描述

    使用copy参数

    n1 = np.array([1, 2, 3])
    n2 = np.array(n1, copy=True)
    n2[0] = 5
    print(n1)
    print(n2)
    

    在这里插入图片描述

  5. 修改数组维数

    n1 = [1, 2, 3]
    # 转换为三维数组
    n2 = np.array(n1, ndmin=3)
    print(n2)
    print(n2.shape)
    

    在这里插入图片描述

  6. 创建制定形状未初始化的数组

    n = np.empty([2,3])
    print(n)
    

    在这里插入图片描述

  7. 创建以0填充的数组

    n = np.zeros([2, 3])
    print(n)
    

    在这里插入图片描述

  8. 创建以1填充的数组

    n = np.ones([2, 3])
    print(n)
    

    在这里插入图片描述

  9. 创建指定数值填充的数组

    n = np.full((3, 3), 8)
    print(n)
    

    在这里插入图片描述

  10. 数组的加减乘除法运算

    n1 = np.array([1, 2])
    n2 = np.array([3, 4])
    print(n1 + n2)
    print(n1 - n2)
    print(n1 * n2)
    print(n1 / n2)
    

    在这里插入图片描述

  11. 数组的reshape操作

    n = np.array(
        ['唧', '唧', '复', '唧', '唧', '木', '兰', '当', '户', '织', '不', '闻', '机', '杼', '声', '惟', '闻', '女', '叹',
         '息'])
    n1 = n.reshape(4, 5)
    print(n1)
    

    在这里插入图片描述

  12. 使用mat创建矩阵

    a = np.mat([[5, 6], [7, 8]])
    b = np.mat([[1, 2], [3, 4]])
    print(a)
    print(b)
    print(type(a))
    print(type(b))
    

    在这里插入图片描述

  13. 矩阵的加减乘除运算

    data1 = np.mat([[1, 2], [3, 4], [5, 6]])
    data2 = np.mat([1, 2])
    data3 = np.mat([[5, 6], [7, 8]])
    print(data1 + data2)
    print(data1 - data2)
    print(data1 / data2)
    print(data1 * data3)
    

    在这里插入图片描述

  14. 数组点乘运算

    n1 = np.array([1, 2, 3])
    n2 = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
    print(np.multiply(n1, n2))
    

    在这里插入图片描述

  15. 矩阵求转置

    n1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print('矩阵转置结果为:\n', n1.T)
    

    在这里插入图片描述

  16. 矩阵求逆

    n1 = np.mat([[1, 3, 3], [4, 5, 6], [7, 15, 9]])
    print('矩阵的逆矩阵结果为:\n', n1.I)
    

    在这里插入图片描述

  17. 使用Numpy内置函数进行数组加减乘除

    n1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    n2 = np.array([10, 10, 10])
    print('两个数组相加:')
    print(np.add(n1, n2))
    print('两个数组相减:')
    print(np.subtract(n1, n2))
    print('两个数组相乘:')
    print(np.multiply(n1, n2))
    print('两个数组相除:')
    print(np.divide(n1, n2))
    
  18. 幂运算

    n1 = np.array([10, 100, 1000])
    print(np.power(n1, 3))
    
  19. 数组元素行列求和

    n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print('对数组元素求和:')
    print(n.sum())
    print('对数组元素按列求和:')
    print(n.sum(axis=0))
    print('对数组元素按行求和:')
    print(n.sum(axis=1))
    
  20. 数组元素求平均值

    n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print('对数组元素求平均值:')
    print(n.mean())
    print('对数组元素按列求平均值:')
    print(n.mean(axis=0))
    print('对数组元素按行求平均值:')
    print(n.mean(axis=1))
    
  21. 求最大最小值

    n = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print('数组元素最大值:')
    print(n.max())
    print('数组中每一列的最大值:')
    print(n.max(axis=0))
    print('数组中每一行的最大值:')
    print(n.max(axis=1))
    print('数组元素最小值:')
    print(n.min())
    print('数组中每一列的最小值:')
    print(n.min(axis=0))
    print('数组中每一行的最小值:')
    print(n.min(axis=1))
    
  22. 求数组中位数

    n = np.array([34.5, 36, 37.8, 39, 39.8, 33.6])
    # 数组排序后,查找中位数
    sort_n = np.sort(n)
    print('数组排序:')
    print(sort_n)
    print('数组中位数为:')
    print(np.median(sort_n))
    
  23. 求数组方差标准差

    n = np.array([34.5, 36, 37.8, 39, 39.8, 33.6])
    print('数组方差:')
    print(np.var(n))
    print('数组标准差:')
    print(np.std(n))
    
  24. 数组排序

    n = np.array([[4, 7, 3], [2, 8, 5], [9, 1, 6]])
    print('数组排序:')
    print(np.sort(n))
    print('按列排序:')
    print(np.sort(n, axis=0))
    print('按行排序:')
    print(np.sort(n, axis=1))
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java+SpringBoot+vue+element实现前后端分离牙科诊所管理系统详细设计

基于JavaSpringBootvueelement实现前后端分离牙科诊所管理系统详细设计 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 ** 作者主页 央顺技术团队** 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

【阿里云系列】-基于云效构建部署NodeJS项目到ACK

准备工作 01、编写Dockerfile文件可以根据不同的环境,新建不同的Dockerfile文件,比如Dockerfile-PROD # Deliver the dist folder with NginxFROM nginx:stable-alpine ENV LANGC.UTF-8 ENV TZAsia/ShanghaiCOPY dist/ /usr/share/nginx/html COPY ngi…

字节跳动也启动春季校园招聘了(含二面算法原题)

字节跳动 - 春招启动 随着各个大厂陆续打响春招的响头炮,字节跳动也官宣了春季校园招聘的正式开始。 还是那句话:连互联网大厂启动校招计划尚且争先恐后,你还有什么理由不马上行动?! 先来扫一眼「春招流程」和「面向群…

怎么恢复删除的文件?三个实用数据恢复方法分享

在日常工作和生活中,我们经常会遇到误删文件的情况,这可能会带来不小的麻烦。幸运的是,随着科技的发展,现在有很多方法可以帮助我们恢复被删除的文件。下面让我来分享三种常用的文件恢复方法,一起来看看吧!…

【Springboot】--如何将springboot+vue项目部署到云服务器?

目录 一、准备工作 1、购买云服务器 2、获取面板地址 二、jdk和数据库 1、安装环境 2、配置jdk环境变量 3、java版本的问题 4、添加数据库 三、前端部署 1、vue 2、创建站点 ​编辑 四、后端部署 1、application.yml 2、idea打包 3、运行jar包 4、开放端口 五、…

大模型时代下的 BI——智能问数

「智能问数」是 Sugar BI 基于文心大语言模型推出的对话式数据问答产品,让用户能够通过自然语言的方式进行对答形式的数据查询,系统自动使用可视化图表的方式呈现数据结果,并支持对数据做summary总结。 智能问数功能邀测中,欢迎CS…

Dgraph 入门教程四《开发环境的搭建》

在深入 了解Dgraph 之前,我们先了解下开发环境,毕竟让开发人员真正动起手来才是第一步。 Dgraph 支持很多种语言的开发,包括GO,Python,JS,C#和Java等等。出于项目需要,只了解下JS和Java。 1、…

基础小白快速入门web前端开发技术------->hbuilder的下载安装以及简易的网页最开始制作

工欲善其事,必先利其器, 在我们学习开发网页设计,我们首先需要一个良好的开发工具 这里我比较推荐hbuilder这个 只需要进入官网傻瓜下载,傻瓜安装 https://dcloud.io/ 点击hbuilder选择版本进行下载安装即可 hbuilder的新建文件…

深度强化学习(四)SARSA

深度强化学习(四)SARSA算法 一.SARSA 假设状态空间 S \mathcal{S} S 和动作空间 A \mathcal{A} A 都是有限集, 即集合中元素数量有限。比如, S \mathcal{S} S 中一共有 3 种状态, A \mathcal{A} A 中一共有 4 种动作。那么动作价值函数 Q π ( s …

ida pro 查看简易 Android .so 文件伪代码

参考: IDA Pro 反汇编器使用详解,适合逆向新人和老人的权威指南(一)-CSDN博客 注意,这篇只是我的简单记录,要学习详细使用,请参考其他大佬的。 让我们打开神器 IDA 直接把需要的文件拖到 IDA …

3.1_2 覆盖与交换

3.1_2 覆盖与交换 (一)覆盖技术 早期的计算机内存很小,比如IBM 推出的第一台PC机最大只支持1MB大小的内存。因此经常会出现内存大小不够的情况。 后来人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题。 覆盖技术的…

工业智能网关的网关模式和交换机模式有哪些区别

工业智能网关主要用以实现工业物联网络中不同设备和系统之间的通信,工业智能网关常见的两种工作模式是网关模式和交换机模式,在功能和应用场景上存在显著差异,本篇就为大家简单介绍一下两者之间的主要区别: 1、网关模式 工业智能…

String 底层为什么使用 final 修饰?

1、典型回答 对于这个问题,Java之父詹姆斯 高斯林(James Gosling) 是这样回答的: I would use an immutable whenever I can 翻译为中文:只要允许,我就会使用不可变对象 而作为普通人的我们来说&#xff0…

有一说一,CSPM真的是垃圾证书吗?

CSPM是什么? CSPM——项目管理专业人员能力评价,是中国人自己的一套项目管理专业人士的评价指南,符合中国国情且符合中国未来发展的一套项目刊专业人员能力评价的标准。 PMP项目管理专业人士资格认证,由美国项目管理协会——PMI…

根到叶路径问题:遍历框架 + 前中后序位置 + 路径记录 + 叶子节点处理

根到叶路径问题 257. 二叉树的所有路径129. 求根节点到叶节点数字之和112. 路径总和113. 路径总和 II437. 路径总和 III988. 从叶结点开始的最小字符串124. 二叉树中的最大路径和 257. 二叉树的所有路径 问题描述:找出所有从根节点到叶子节点的路径,并以…

ATFX汇市:美国2月CPI数据来袭,高通胀问题或进一步缓解

ATFX汇市:今日20:30,美国劳工部将公布2月未季调核心CPI年率数据,前值为3.9%,预期值3.7%,预期将下降0.2个百分点。历史数据看,美国核心CPI年率处于快速下降状态,去年3月份数据仍高达5.6%&#xf…

社交创新的先锋:探秘Facebook背后的故事与智慧

起源与初创阶段 Facebook的故事始于2004年,由马克扎克伯格(Mark Zuckerberg)、埃迪华索伦(Eduardo Saverin)、安德鲁麦克卡拉姆(Andrew McCollum)、克里斯休斯(Chris Hughes&#x…

prometheus 原理(架构,promql表达式,描点原理)

大家好,我是蓝胖子,提到监控指标,不得不说prometheus,今天这篇文章我会对prometheus 的架构设计,promql表达式原理和监控图表的绘图原理进行详细的解释。来让大家对prometheus的理解更加深刻。 架构设计 先来看看&am…

Vue3全家桶 - Vue3 - 【4】侦听器

侦听器 一、 组合式API: 1.1 watch()函数 创建侦听器: 语法:// 先导入 watch 函数 import { watch } from vue watch(source, callback, options)source: 需要侦听的数据源,可以是 ref(包括计算属性)、一个响应式对…

从监控到稳定性可观测:从问题响应到预防的技术变革

从单体架构到集群架构再到微服务架构,业务越来越庞大,也越来越复杂。每一次架构的升级,在提升了业务吞吐量的同时,必然会带来更大的复杂度。云原生时代背景下,微服务、Service Mesh、 Serverless 等新技术的出现&#…