Python数值计算(3)

news2024/11/16 12:08:13

这次说一说构造均分向量的操作。

1. 造轮子

在数值计算中 ,我们通常要在区间[a,b]之间产生指定步长或者给定采样点的一组等差数列(或者说是一个向量),例如MATLAB中的linspace函数,linspace(a,b,n)在区间[a,b]之间产生n个元素,定义一下我们自己的函数,如下:

def lincount(a,b,n):
    if n<2:
        raise("'n' should be n>=2")
    dh=(b-a)/(n-1)
    cnt=0
    ret=[]
    while cnt<n:
        ret.append(a+cnt*dh)
        cnt+=1
    return ret


#测试
print(lincount(1,5,7)) # [1.0, 1.6666666666666665, 2.333333333333333, 3.0, 3.6666666666666665, 4.333333333333333, 5.0]

另外一种是给定步长的方式,定义函数如下:

def linstep(a,b,dx):
    ret=[]
    x=a
    while x<b:
        ret.append(x)
        x+=dx
    return ret

#测试
print(linstep(1,3,0.3)) # [1, 1.3, 1.6, 1.9000000000000001, 2.2, 2.5, 2.8]

2. 用轮子

这么基本而又常见的需求,肯定是有其他大佬早就完成了这样的工作,我们完全没必要自己造轮子,numpy模块中就有这样的函数,分别是arange和linspace。

arange和Python原生的range类似,但是后者只支持整数,而arange则更加强大,支持浮点数,它的语法是这样的:

numpy.arange(startstop,step)

例如:

import numpy as np
x=np.arange(1,3,0.3)
print(x) # [1.  1.3 1.6 1.9 2.2 2.5 2.8]

可以看到,这比前面自己定义的运算结果要好一些

linspace的用法如下:

numpy.linspace(start, stop, num=50)

例如:

import numpy as np
x=np.linspace(1,5,7)
print(x) # [1. 1.66666667 2.33333333 3. 3.66666667 4.33333333 5.]

当然,numpy还提供了geomspace和logspace生成特定规律的向量,不过这两个函数出场率不高,这里就不展开介绍了,感兴趣的可以去numpy官网检索一下。

总结

本次的内容也奠定了后面的基调,主要是使用现成的工具软件,解决我们的问题,而不是去阐述原理,例如高斯消元法,需要自己去准备数学知识,文章只会告诉如何使用现有的工具包。

另外,使用Python的时候,一定要有这种意识,就是在有特定需求的时候,不要急着去造轮子,你会发现你需要的很多工具,别人都已经提供了(而且大概率比你做的更好)。虽然我们可以通过数学或者工程知识去制造我们的轮子(例如lincount和linstep函数),甚至诸如线性方程的求解,或者函数的求根等,我们也可以自己实现。虽然可以,但没必要,因为是这明显违背了我们使用Python的初衷,能用现成的库,还去自己写,在Python中这不啻为一种犯罪行为。不过,并不是所有的工作都有对应的轮子,或者你想造个自行车结果发现只有现成的汽车轮子,这个时候,还是要学会自己写一写算法的。

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

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

相关文章

【神经网络】正则化缓解过拟合-Dropout

文章目录 1、简介2、Dropout 层的原理和使用3、小结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初步涉猎人工智能和前端开发。 &#…

C#中的wpf基础

在WPF中&#xff0c;Grid 是一种非常强大的布局控件&#xff0c;用于创建网格布局。它允许你将界面划分为行和列&#xff0c;并将控件放置在这些行和列中。 以下是一些关键点和示例&#xff0c;帮助你理解 WPF 中的 Grid&#xff1a; 基本属性 RowDefinitions&#xff1a;定义…

AI 抠图工具 | 鲜艺AI抠图 v2.1 绿色版

&#x1f389;&#x1f389; 各位小伙伴们&#xff0c;你们是不是还在为抠图烦恼&#xff1f;别担心&#xff0c;鲜艺AI抠图神器来拯救你啦&#xff01;基于RMBG-1.4黑科技开发&#xff0c;免费使用&#xff0c;本地操作&#xff0c;告别繁琐登录和联网困扰&#xff01;&#x…

【数据结构进阶】AVL树

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; C || 数据结构 目录 &#x1f308;前言&#x1f525;AVL树的概念&#x1f525;AVL树的自实现AVL树结点的定义AVL树需实现的函数接口AVL树的插入AVL树的旋转右单旋左单旋左右双旋右左双旋…

【Docker虚拟机】在极空间上快速部署智能家居自动化平台『Home Assistant 』

【Docker&虚拟机】在极空间上快速部署智能家居自动化平台『Home Assistant 』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 前段时间被粉丝问到怎么在极空间上部署Home Assistant&#xff0c;之前只是使用命令在威联通上部署过&#xff0c;所以最近正好有时间&#xff0c;在…

Ethernet

目录 1. Physical Layer(PHY)2. MAC2.1. MAC帧格式2.2. MAC地址与IP地址3. RGMII接口FPGA实现以太网(一)——以太网简介 以太网(Ethernet)是指遵守 IEEE 802.3 标准组成的局域网通信标准, IEEE 802.3 标准规定的主要是OSI参考模型中的物理层(PHY)和数据链路层中的介质访问控…

搭建DNS正向解析,反向解析+搭建DNS主从架构+搭建DNS多区域+时间同步

主要在局域网中配置&#xff0c;不存在外网 正向解析&#xff1a;域名解析为IP named.conf 解决权限 named.rfc1912.zones 解决解析方式 环境准备&#xff1a;三台机器都做下面的操作 基础配置&#xff1a;网络配置&#xff0c;关闭安全架构&#xff0c;关闭防火墙&#x…

Linux进程控制——进程等待

文章目录 进程等待进程等待的必要性进程等待的方法status参数option参数 进程等待 进程等待的过程其实是父进程等待子进程死亡的过程 进程等待的必要性 如果子进程退出&#xff0c;父进程不进行处理&#xff0c;子进程会变成僵尸进程&#xff0c;有内存泄漏的风险 僵尸进程…

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

超逼真AI生成电影来了!《泰坦尼克号》AI重生!浙大阿里发布MovieDreamer,纯AI生成电影引爆热议!

视频生成领域的最新进展主要利用了短时内容的扩散模型。然而&#xff0c;这些方法往往无法对复杂的叙事进行建模&#xff0c;也无法在较长时间内保持角色的一致性&#xff0c;而这对于电影等长篇视频制作至关重要。 对此&#xff0c;浙大&阿里发布了一种新颖的分层框架Mov…

Kafka知识总结(选举机制+控制器+幂等性)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 选举机制 控制器&#xff08;Broker&#xff09;选举 控制器就是…

大模型算法面试题(十五)

本系列收纳各种大模型面试题及答案。 1、大模型LLM进行SFT如何对样本进行优化 大模型LLM&#xff08;Language Model&#xff0c;语言模型&#xff09;进行SFT&#xff08;Structured Fine-Tuning&#xff0c;结构化微调&#xff09;时&#xff0c;对样本的优化是提升模型性能…

从0开始搭建vue + flask 旅游景点数据分析系统(四):编写前端首页【数据驾驶舱】

本期我们编写数据驾驶舱页面(Dashboard)这个页面。主要任务是引入echarts 组件编写数据驾驶舱页面。 视频教程后续会更新在我的B站&#xff1a;https://space.bilibili.com/1583208775?spm_id_from666.25.0.0 推荐从教程第一集开始从零开始学习&#xff1a;https://blog.csdn…

PyCharm2024 专业版激活设置中文

PyCharm2024 专业版激活设置中文 官网下载最新版&#xff1a;https://www.jetbrains.com/zh-cn/pycharm/download 「hack-jet激活idea家族.zip」链接&#xff1a;https://pan.quark.cn/s/4929a884d8fe 激活步骤&#xff1a; 官网下载安装PyCharm &#xff1b;测试使用的202…

HDMI的等长要求到底是多少?

四对差分走线对内误差最好做到 5mil 范围之内&#xff0c;对与对的差分误差最好控制在 10mil 范围之内。同时&#xff0c;对与对之间的间距要求做到 15mil&#xff0c;空间准许的情况下尽量拉开&#xff0c;减小串扰。 作者&#xff1a;凡亿教育 https://www.bilibili.com/rea…

VulnHub:doubletrouble1

靶机下载地址 trouble1 信息收集 主机发现 攻击机ip&#xff1a;192.168.31.218&#xff0c;扫描攻击机同网段存活ip。 nmap 192.168.31.0/24 -Pn -T4 确认目标机ip&#xff1a;192.168.31.174 端口扫描 nmap 192.168.31.174 -A -p- -T4 开放了22,80端口。 目录扫描 访…

小白学大模型:LLaMA-Factory 介绍与使用

最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友…

Linux:进程信号(二.信号的保存与处理、递达、volatile关键字、SIGCHLD信号)

上次介绍了&#xff1a;(Linux&#xff1a;进程信号&#xff08;一.认识信号、信号的产生及深层理解、Term与Core&#xff09;)[https://blog.csdn.net/qq_74415153/article/details/140624810] 文章目录 1.信号保存1.1递达、未决、阻塞等概念1.2再次理解信号产生与保存1.3信号…

ES6语法详解,面试必会,通俗易懂版

目录 Set的基本使用WeakSet 使用Set 和 WeakSet 区别内存泄漏示例&#xff1a;使用普通 Set 保存 DOM 节点如何避免这个内存泄漏MapWeakMap 的使用 Set的基本使用 在ES6之前&#xff0c;我们存储数据的结构主要有两种&#xff1a;数组、对象。 在ES6中新增了另外两种数据结构&a…

Pytorch深度学习快速入门(中)

Pytorch深度学习快速入门&#xff08;中&#xff09; 一、Containers&#xff08;神经网络的基本骨架&#xff09;&#xff08;一&#xff09;Module 的使用&#xff08;二&#xff09;Sequential 的使用<搭建小实战> 二、Convolution Layers&#xff08;卷积层&#xff…