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

(Pytorch、pandas、matplotlib)数据操作

一.Pytorch1.1新建torch张量以及查看属性改变形状新建torch张量x torch.arange(20).reshape(4,-1)#元素从0到19x torch.zeros(4,4)#还有.ones和.randnx torch([[1,2],[2,3]])#也可以自己去写元素查看张量形状print(x.shape,x.numel())改变张量形状X x.reshape(5,-1)索引和切片1.2张量的计算基本运算x torch.tensor([1.0, 2, 4, 8])y torch.tensor([2, 2, 2, 2])x y, x - y, x * y, x / y, x ** y xy # **运算符是求幂运算都是对应位置的元素之间的计算torch.exp(x)将张量按照不同的维度通成一个X torch.arange(12, dtypetorch.float32).reshape((3,4))Y torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])torch.cat((X, Y), dim0), torch.cat((X, Y), dim1)广播机制按照维度数为一的维度进行广播a torch.arange(3).reshape((3, 1))b torch.arange(2).reshape((1, 2))a, b1.3节省内存x[:] xy#x的地址不变不分配新内存xy#同上1.4转化为其他数据类型#将numpy转化为tensor张量 A X.numpy() B torch.tensor(A) type(A), type(B) #将标量张量转化为内置数据类型 a torch.tensor([3.5]) a, a.item(), float(a), int(a)1.5线性代数计算张量乘标量形状不变元素分别相乘torch.dot(x,x)#向量点积torch.mv(s,x)#矩阵和向量相乘torch.mm(s,v)#矩阵乘法A A.T#矩阵转置B A.clone()#分配新内存将A的副本给B降维A.sum()#不论A是几维数据都按照0、1的唯独顺序倒着相加求和。A.sum(axis0)#指定降维的轴sum_A A.sum(axis1, keepdimsTrue)#指定求合后维度不变沿某个轴计算A元素的累积总和 比如axis0按行计算可以调用cumsum函数。 此函数不会沿任何轴降低输入张量的维度。A.cumsum(axis0)范数一种求和的方式函数1.向量的范数L2级范数每个元素平方的和再相加torch.norm(u)L1级范数每个元素绝对值的和torch.abs(u).sum()2. 矩阵的范数torch.norm(torch.ones((4, 9)))1.6自动微分import torch x torch.arange(4.0) x x.requires_grad_(True) # 等价于xtorch.arange(4.0,requires_gradTrue) x.grad # 默认值是None y 2 * torch.dot(x, x) y y.backward()分离计算阻断梯度传播x.grad.zero_() y x * x u y.detach() z u * x z.sum().backward() x.grad u二.pandas读取数据并转化为tensor数据预处理#读取csv数据 data pd.read_csv(data_file) print(data)处理缺失值主要有插值法和删除法1.插值法#用同一列的均值进行替代缺失值、inputs, outputs data.iloc[:, 0:2], data.iloc[:, 2]inputs inputs.fillna(inputs.mean())print(inputs)2.将类别型数据转化为数字表示。对于inputs中的类别值或离散值我们将“NaN”视为一个类别。 由于“巷子类型”“Alley”列只接受两种类型的类别值“Pave”和“NaN”pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。 巷子类型为“Pave”的行会将“Alley_Pave”的值设置为1“Alley_nan”的值设置为0。 缺少巷子类型的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。inputs pd.get_dummies(inputs, dummy_naTrue)print(inputs)3.将读入的数据转化为tensor类型import torch X torch.tensor(inputs.to_numpy(dtypefloat)) y torch.tensor(outputs.to_numpy(dtypefloat)) X, y三.matplotlib可视化plot函数配置def use_svg_display(): #save 使用svg格式在Jupyter中显示绘图 backend_inline.set_matplotlib_formats(svg)def set_figsize(figsize(3.5, 2.5)): #save 设置matplotlib的图表大小 use_svg_display() d2l.plt.rcParams[figure.figsize] figsizedef set_axes(axes, xlabel, ylabel, xlim, ylim, xscale, yscale, legend): 设置matplotlib的轴 axes.set_xlabel(xlabel) axes.set_ylabel(ylabel) axes.set_xscale(xscale) axes.set_yscale(yscale) axes.set_xlim(xlim) axes.set_ylim(ylim) if legend: axes.legend(legend) axes.grid()#save def plot(X, YNone, xlabelNone, ylabelNone, legendNone, xlimNone, ylimNone, xscalelinear, yscalelinear, fmts(-, m--, g-., r:), figsize(3.5, 2.5), axesNone): 绘制数据点 if legend is None: legend [] set_figsize(figsize) axes axes if axes else d2l.plt.gca() # 如果X有一个轴输出True def has_one_axis(X): return (hasattr(X, ndim) and X.ndim 1 or isinstance(X, list) and not hasattr(X[0], __len__)) if has_one_axis(X): X [X] if Y is None: X, Y [[]] * len(X), X elif has_one_axis(Y): Y [Y] if len(X) ! len(Y): X X * len(Y) axes.cla() for x, y, fmt in zip(X, Y, fmts): if len(x): axes.plot(x, y, fmt) else: axes.plot(y, fmt) set_axes(axes, xlabel, ylabel, xlim, ylim, xscale, yscale, legend)然后调用x np.arange(0, 3, 0.1) plot(x, [f(x), 2 * x - 3], x, f(x), legend[f(x), Tangent line (x1)])即可绘制二维图像的切线图
http://www.gsyq.cn/news/1344207.html

相关文章:

  • 手机上还有免费编辑pdf文本的软件?!
  • 3分钟掌握PlantUML Editor:用代码思维绘制专业UML图表的终极指南
  • 短信验证码5大常见漏洞与防御实战
  • 罗技鼠标宏压枪脚本:基于Lua的游戏后坐力控制系统架构
  • 现代Qt开发教程(新手篇)2.4——QFont 与文本渲染基础
  • ViGEmBus虚拟游戏控制器驱动:Windows游戏输入的终极解决方案
  • CANN 异构编程:CPU-NPU 协同计算实战
  • Unity动态设置Layer与摄像机屏蔽的完整闭环方案
  • FreeMove终极指南:Windows磁盘空间优化利器,轻松释放C盘数十GB空间
  • NGINX明文注入漏洞CVE-2026-1642原理与防御实战
  • G-Helper终极指南:彻底释放华硕笔记本性能的轻量级开源神器
  • 工业智能网关:三菱FX3U PLC数据采集
  • NHSE终极指南:掌握动物森友会存档编辑的5大核心技术
  • Unity Android构建中NDK 19.0.5232133稳定实践指南
  • 2026年12款客户管理系统推荐:国内企业热门CRM盘点
  • 机器学习深度学习实战项目推荐!(附项目代码)
  • 3分钟快速上手:罗技鼠标PUBG压枪宏终极配置指南
  • 群晖SSH远程访问全链路打通指南
  • 群晖NAS远程SSH配置全解:从权限控制到独立模式实战
  • Fiddler抓包+ProtoBuf逆向:二进制协议解析实战指南
  • 茉莉花插件:Zotero中文文献管理终极解决方案,5分钟打造高效科研工作流
  • Deep:DeepSeek 版的 Aider / Claude Code,开源 CLI 编程工具新选择
  • 【Midjourney拍立得风格终极指南】:3步零代码复刻宝丽来胶片质感,92%用户首次尝试即出片
  • QQ音乐加密音频一键解密:3步让Mac用户重获音乐自由
  • 税务平台国密登录四段式加密链路实战解析
  • 参数高效微调技术:大模型时代的轻量化适配范式
  • Elsevier-Tracker:科研工作者的终极审稿进度监控解决方案
  • C#零拷贝内存扫描:游戏调试的高性能替代方案
  • 关联规则分析(Apriori算法)
  • JMeter文件上传测试:multipart/form-data协议级调试与压测实战