《Python深度学习基于Pytorch》学习笔记

news2024/9/28 11:14:07

1.Numpy提供两种基本的对象:ndarray(n维数组对象)(用于储存多维数据)和ufunc(通用函数对象,用于处理不同的数据)。

2.numpy的主要优点:ndarray提供了很多数组化的运算,并且可以快读对数组进行操作,不用写循环来操作。

3.numpy是外部的库,使用的话需要导入先,没有库可以安装。

4.使用时候要导入numpy

5.创建ndarry的方法

import numpy as np
#1.使用转换函数将现有的list或者元组转换为ndarry
list1=[[3.14,2.17,0,1,2],[3,44,2.22,55,9]]
nd1=np.array(list1)
print(nd1)

#2.use the random to generate the ndarry
nd2=np.random.random([3,3])
print(nd2)
#指定了seed之后就会生成固定的内容
nd3=np.random.random([3,3])
print(nd3)
#3.使用便捷生成函数zeros、ones等,可可以将生成的结果进行保存
nd4=np.zeros((3,4),int)#默认是float类型
np.savetxt(X=nd4,fname='./test1.txt')
print(nd4)
#4.使用arange和linspace函数生成数组
nd4=np.arange(4,50,12)#4-50 per 12 ,no including 50
print(nd4)
nd5=np.arange(9,-1,-2)#倒着生成需要在步长前添加-
print(nd5)
nd6=np.linspace(0,4,8)#在0-4之间均匀的生成8个,包含起点和终点,等差数列
print(nd6)
nd7=np.logspace(0,4,8,base=2)#等比数列
print(nd7)

6.获取元素

#获取元素
nd8=np.random.random(10)
print(nd8)
print(nd8[3])#从0开始算,其实是第四个
print(nd8[3:6])#索引为3的开始一直到索引为5,不包括6
print(nd8[1:6:2])#索引1到索引5,每隔1个取一个
print(nd8[1:6:1])#每隔0个,也就是挨个取
print(nd8[::-2])#倒序每隔两个
nd9=np.arange(25).reshape([5,5])
print('nd9:',nd9)
print('second and third row:',nd9[1:3,:])#指定行,先行后列
print('second and third row:',nd9[[1,2]])#指定行
print('second and third cloum:',nd9[:,1:3])#指定列
print(nd9[1:5,1:3])#先行后列
print('range[2,8]:',nd9[(nd9>2)&(nd9<8)])#筛选

7.运算

#算数运算
#主要用到的就是乘法:普通乘法(对应元素相乘)和点乘(内积)
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
C = np.array([3,5,6])
print(A)
print(B)
print(A*B)#数乘
print(np.multiply(A,B))#数乘
print(3*A)#数乘
print(B/3.0)#数乘

D = np.random.rand(4,2)
def softmoid(x):#定义一个函数
    return 1/(1+np.exp(-x))

print(D)
print(softmoid(D))
print(softmoid(D).shape)#输出数据的shape,就是形状大小
print(np.shape(D))#函数的形式输出和上面是一样的意思
print(softmoid(D).size)#size是个数

X1 = np.array([[1,2],[3,4]])
X2 = np.array([[5,6,7],[8,9,10]])
print(np.dot(X1,X2))

8.数组变形

#数据变形
#reshape()改变维度,不改变数组本身
X1 = np.arange(10)
print(X1)
print(X1.reshape(2,5))
print(X1.reshape(-1,5))
print(X1)

#resize改变维度,改变数组本身
print(X1.resize(2,5))
print(X1)

#转置
print(X1.T)

#展平如果我们将 order 参数设置为“C”,则意味着数组以行优先顺序展平。
#如果设置了“F”,则数组将按列优先顺序展平。
#仅当“A”在内存中是 Fortran 连续的并且我们将 order 参数设置为“A”时,数组才以列优先顺序展平。
#最后一个顺序是“K”,它以与元素在内存中出现的顺序相同的顺序展平数组。默认情况下,此参数设置为“C”。
print(X1.ravel())#按照行展平,default
print(X1.ravel('F'))#按照列展平
print(X1.ravel('C'))#按照行展平

#flatten 把矩阵转换为向量,这种需求经常出现在卷积网络与全连接层之间。
a =np.floor(10*np.random.random((3,4)))#floor取整
print(a)
print(a.flatten())

#squeeze降维 这是一个主要用来降维的函数,把矩阵中含1的维度去掉,不改变原变量。在PyTorch中还有一种与之相反的操作——torch.unsqueeze
arr1 = np.arange(3).reshape(3,1)
print(arr1)
print(arr1.shape)
print(arr1.squeeze())
print(arr1.squeeze().shape)
print(arr1)
print(arr1.shape)

arr2 =np.arange(6).reshape(3,1,2,1)#
print(arr2)
print(arr2.shape)
print(arr2.squeeze().shape)
print(arr2.squeeze())#去掉了两个维度,就是为1的维度

#transpose 对高维矩阵进行轴对换,这个在深度学习中经常使用,比如把图片中表示颜色顺序的RGB改为GBR
arr3 = np.arange(24).reshape(2,3,4)
print(arr3)
print(arr3.shape)
print(arr3.transpose(1,2,0))#索引代表了如何进行轴对换0和2换,1在和2换
print(arr3.transpose(1,2,0).shape)

9.合并

 

#数组合并,按照行合并就是按照行往下走,合并到下面;按照列合并就是往右走,放到右边
#1.append
a=np.array([1,2,3])
b=np.array([4,5,6])
print(np.append(a,b))#合并一维数组

c=np.arange(4).reshape(2,2)
d=np.arange(4).reshape(2,2)
print(np.append(c,d,axis=0))#=0按照行合并
print(np.append(c,d,axis=1))#=1按照列合并

#2.concatenate按照指定轴连接数组或矩阵,要连接的那个方向维度大小要一致
e = np.array([[1,2],[3,4]])#2*2
f = np.array([[5,6]])#2*1
print(np.concatenate((e,f),axis=0))
#print(np.concatenate((e,f),axis=1))#列的尺寸不一样 会报错,可以转置之后再拼接
print(np.concatenate((e,f.T),axis=1))

#3.stack 沿着制定轴堆叠数组和矩阵,只是单纯的堆叠
print(np.stack((e,e),axis=0))

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

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

相关文章

springboot+vue大学生足球队管理系统 java

(1) 系统管理&#xff1a; 用户分为超级管理员、球队管理员、球队球员、游客&#xff0c;以区分不同用户的操作权限&#xff0c;用户的登录退出。 (2) 前台页面&#xff1a; 1.网站首页&#xff1a;展示系统简介&#xff0c;部分赛事信息&#xff0c;部分院系球队信息&#xff…

号称「碾压」LLaMA的Falcon实测得分仅49.08

作为开源模型界的扛把子&#xff0c;LLaMA 一直备受瞩目。 这是一组由 Meta 开源的大型语言模型&#xff0c;共有 7B、13B、33B、65B 四种版本。其中&#xff0c;LLaMA-13B 在大多数数据集上超过了 GPT-3&#xff08;175B&#xff09;&#xff0c;LLaMA-65B 达到了和 Chinchill…

服务器文件同步机制配置(rsync Sersync)

参考文章链接&#xff1a;http://static.kancloud.cn/curder/linux/78148 在上述参考文章中&#xff0c;对与主从同步部署过程做了详细的操作解释&#xff0c;但对于三台服务器如何互相同步&#xff08;即三个都是master&#xff09;&#xff0c;本文针对三台master相互同步进…

一文读懂redis持久化机制

持久化官网相关参考资料 https://redis.io/docs/manual/persistence/ 持久化就是把redis内存里面保存的数据保存磁盘中&#xff0c;在redis重启或者能够使得数据不会丢失。目前常用的持久化方式有&#xff1a;RDB方式、AOF方式以及RDB AOF两种方式 RDB持久化方式 所谓的RDB…

实现无间断的自动化:Jenkins与GitLab的定时任务工作流程

简介&#xff1a; Jenkins是一个流行的开源自动化服务器&#xff0c;而GitLab是一个强大的代码托管和协作平台。通过结合Jenkins和GitLab&#xff0c;我们可以建立一个强大的定时任务自动化工作流程&#xff0c;实现代码拉取、构建、测试和部署的自动化。本篇博客将介绍如何使…

大屏数据可视化开源项目

一、DataGear —— 数据可视化项目 官网&#xff1a;DataGear - 开源免费的数据可视化分析平台 DataGear 是一款开源免费的数据可视化分析平台&#xff0c;数据可视化看板。 功能特性&#xff1a; 1、多种数据源&#xff0c;支持运行时接入任意提供 JDBC 驱动的数据库&#…

Web网页端IM产品RainbowChat-Web的v5.0版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统&#xff0c;是RainbowChat的姊妹系统&#xff08;RainbowChat是一套基于开源IM聊天框架 MobileIMSDK(Github地址) 的产品级移动端IM系统&#xff09;。 ► 详细介绍&#xff1a;http://www.52im.net/thread-248…

Python的pip install安装路径修改

背景 当我们在安装python的依赖包的时候&#xff0c;不知道默认安装在什么位置&#xff0c;或者不想安装在默认的位置&#xff0c;这时候我们可以手动修改pip install的安装位置。 1.打开cmd窗口, 执行python -m site 输入 python -m site 这个命令可以看到目前的USER_BASE和…

HarmonyOS ArkTS Ability内页面的跳转和数据传递

HarmonyOS ArkTS Ability的数据传递包括有Ability内页面的跳转和数据传递、Ability间的数据跳转和数据传递。本节主要讲解Ability内页面的跳转和数据传递。 打开DevEco Studio&#xff0c;选择一个Empty Ability工程模板&#xff0c;创建一个名为“ArkUIPagesRouter”的工程为…

亚马逊美国站 CPC认证-儿童毛绒玩具产品 毛绒玩具的作用

毛绒玩具等毛绒东西&#xff0c;其实能给孩子带来愉快和安全感&#xff0c;接触舒适&#xff0c;是儿童依恋的重要部分。我们常常能见到一些孩子晚上睡觉前一定要搂着毛绒玩具、或者一定要盖着毛绒毯子才能睡&#xff0c;丢掉了毛绒玩具&#xff0c;或者盖了其他布质的被子就会…

vue时间组件重置

<el-form-item label"注册日期" label-width"210px"><el-date-picker clearablev-model"registerTime"type"daterange"range-separator"至"value-format"yyyy-MM-dd"start-placeholder"开始日期&qu…

[论文笔记] Atos: A Task-Parallel GPU Scheduler for Graph Analytics

Atos: A Task-Parallel GPU Scheduler for Graph Analytics Atos: 用于图分析的任务并行 GPU 调度程序 [Paper] [Slides] ICPP’22 摘要 提出了 Atos, 一个特别针对动态不规则应用的任务并行 GPU 动态调度框架. 支持消除依赖关系的应用的任务并行公式来暴露额外的并发性除了…

MacBook苹果笔记本电脑卡顿怎么解决?

MacBook使用时间久了之后很容易出现卡顿的问题。那么出现卡顿的原因有哪些呢&#xff1f;MacBook卡顿怎么处理呢&#xff1f;下面为大家介绍几种可能的解决方案。虽然mac系统相对来说比较稳定&#xff0c;但遇到软件崩溃的情况也会突然卡顿而无法使用。那么&#xff0c;遇上mac…

C#运行程序修改数据后数据表不做更新【已解决】

前言 近日&#xff0c;在使用C#连接数据库的时候&#xff0c;对数据库中的表做更新后&#xff0c;在当前启动项目中去显示表数据时虽然会发生一个更新&#xff0c;但是在结束程序运行后再去观察数据表中的记录时发现并没有发生一个变化&#xff0c;在重复尝试了好几次后还是同样…

【Linux】中不小心误卸载了rpm命令如何恢复?

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 问题复现问题解决方案补全 whereis r…

Mac电脑把位图转换成矢量图的软件

Super Vectorizer for Mac是一款强大的位图转换工具&#xff0c;运行在Mac OS平台&#xff0c;可以轻松将数位图转换为矢量图。 矢量图以其放大后图像不会失真的优点&#xff0c;在社会各处的使用范围越来越广&#xff0c;但是网络上找到的图片又往往是数位图&#xff0c;这时…

【APP Debug抓包工具】Stream - Network Debug Tool

【APP Debug工具】 Stream - Network Debug Tool

Flutter进阶篇-Local Key和Global Key

简介: key是widget、element和semanticsNode的唯一标识&#xff0c;同一个parent下的所有element的key不能重复&#xff0c;但是在特定条件下可以在不同parent下使用相同的key&#xff0c;比如page1和page2都可以使用ValueKey(1) 。 常用key的UML关系图如上&#xff0c;整体上…

阿里云安装2019版sql server服务

1、添加 Microsoft 的 yum 存储库 [rootiZ22312ginudnbnifn438Z ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo 这里地址一定要选择https://packages.microsoft.com/config/rhel/7/mssql-server-2019…

华为OD机试真题 JavaScript 实现【记票统计】【牛客练习题】

一、题目描述 请实现一个计票统计系统。你会收到很多投票&#xff0c;其中有合法的也有不合法的&#xff0c;请统计每个候选人得票的数量以及不合法的票数。 &#xff08;注&#xff1a;不合法的投票指的是投票的名字不存在n个候选人的名字中&#xff01;&#xff01;&#x…