runoob-scipy(python)
https://www.runoob.com/scipy/scipy-tutorial.html
SciPy 教程
SciPy 是一个开源的 Python 算法库和数学工具包。
Scipy 是基于 Numpy 的科学计算库,用于数学、科学、工程学等领域,很多有一些高阶抽象和物理模型需要使用 Scipy。
SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
SciPy 应用
Scipy 是一个用于数学、科学、工程领域的常用软件包,可以处理最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等。 。
SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
NumPy 和 SciPy 的协同工作可以高效解决很多问题,在天文学、生物学、气象学和气候科学,以及材料科学等多个学科得到了广泛应用。
SciPy 安装
本章节,我们使用 pip 工具来安装 SciPy 库,如果还未安装该工具,可以参考 Python pip 安装与使用。
升级 pip:
python3 -m pip install -U pip
安装 scipy 库:
python3 -m pip install -U scipy
安装完成后,我们就可以通过 from scipy import module 来导入 scipy 的库:
constants 是 scipy 的常量模块。
以下实例,我们通过导入 scipy 库,然后查看 scipy 库的版本号:
实例
print(scipy.__version__)
SciPy 模块列表
以下列出了 SciPy 常用的一些模块及官网 API 地址:
模块名 | 功能 | 参考文档 |
---|---|---|
scipy.cluster | 向量量化 | cluster API |
scipy.constants | 数学常量 | constants API |
scipy.fft | 快速傅里叶变换 | fft API |
scipy.integrate | 积分 | integrate API |
scipy.interpolate | 插值 | interpolate API |
scipy.io | 数据输入输出 | io API |
scipy.linalg | 线性代数 | linalg API |
scipy.misc | 图像处理 | misc API |
scipy.ndimage | N 维图像 | ndimage API |
scipy.odr | 正交距离回归 | odr API |
scipy.optimize | 优化算法 | optimize API |
scipy.signal | 信号处理 | signal API |
scipy.sparse | 稀疏矩阵 | sparse API |
scipy.spatial | 空间数据结构和算法 | spatial API |
scipy.special | 特殊数学函数 | special API |
scipy/stats | 统计函数 | stats.mstats API |
更多模块内容可以参考官方文档:https://docs.scipy.org/doc/scipy/reference/
SciPy 常量模块
SciPy 常量模块 constants 提供了许多内置的数学常数。
圆周率是一个数学常数,为一个圆的周长和其直径的比率,近似值约等于 3.14159,常用符号 来表示。
以下实例输出圆周率:
实例
print(constants.pi)
执行以上代码,输出结果如下:
3.141592653589793
以下实例输出黄金比例:
实例
print(constants.golden)
执行以上代码,输出结果如下:
1.618033988749895
我们可以使用 dir() 函数来查看 constants 模块包含了哪些常量:
实例
print(dir(constants))
执行以上代码,输出结果如下:
['Avogadro', 'Boltzmann', 'Btu', ...]
单位类型
常量模块包含以下几种单位:
SciPy Matlab 数组
NumPy 提供了 Python 可读格式的数据保存方法。
SciPy 提供了与 Matlab 的交互的方法。
SciPy 的 scipy.io 模块提供了很多函数来处理 Matlab 的数组。
以 Matlab 格式导出数据
savemat() 方法可以导出 Matlab 格式的数据。
该方法参数有:
- filename - 保存数据的文件名。
- mdict - 包含数据的字典。
- do_compression - 布尔值,指定结果数据是否压缩。默认为 False。
将数组作为变量 "vec" 导出到 mat 文件:
实例
import numpy as np
arr = np.arange(10)
io.savemat('arr.mat', {"vec": arr})
注意:上面的代码会在您的计算机上保存了一个名为 "arr.mat" 的文件。
导入 Matlab 格式数据
loadmat() 方法可以导入 Matlab 格式数据。
该方法参数:
- filename - 保存数据的文件名。
返回一个结构化数组,其键是变量名,对应的值是变量值。
以下实例从 mat 文件中导入数组:
实例
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])
# 导出
io.savemat('arr.mat', {"vec": arr})
# 导入
mydata = io.loadmat('arr.mat')
print(mydata)
返回结果如下:
{
'__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Tue Sep 22 13:12:32 2020',
'__version__': '1.0',
'__globals__': [],
'vec': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
}
使用变量名 "vec" 只显示 matlab 数据的数组:
实例
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])
# 导出
io.savemat('arr.mat', {"vec": arr})
# 导入
mydata = io.loadmat('arr.mat')
print(mydata['vec'])
返回结果如下:
[[0 1 2 3 4 5 6 7 8 9]]
从结果可以看出数组最初是一维的,但在提取时它增加了一个维度,变成了二维数组。
解决这个问题可以传递一个额外的参数 squeeze_me=True:
实例
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])
# 导出
io.savemat('arr.mat', {"vec": arr})
# 导入
mydata = io.loadmat('arr.mat', squeeze_me=True)
print(mydata['vec'])
返回结果如下:
[0 1 2 3 4 5 6 7 8 9]
runoob-scipy(python)的更多相关文章
- https://www.runoob.com/python/python-variable-types.html
https://www.runoob.com/python/python-variable-types.html
- Scipy - Python library - Math tool - Begin
Introduction Scientific Computing Tools for Python. Seen in Scipy.org. Environment Linux, CentOS 7 w ...
- linux python 安装 nose lapack atlas numpy scipy
linux python 安装 nose lapack atlas numpy scipy --http://lib.csdn.net/article/python/1262 作者:maple1149 ...
- 手把手教你从零搭建Python数据分析环境
由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...
- Python之路【第一篇】:介绍、基本语法、流程控制
一.python 简介 python 特点 Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网 ...
- Python 个人常用汇总
Python 常用文件操作总结: 导入库路径:sys.path.append('/usr/local/lib/python2.7/site-packages') from random import ...
- Python基础,day1
一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...
- 《阿k学Python》一Python入门(一)
前言 各位看博客的园友们,大家好,我就是那个风流倜傥的KK,还记得我那篇2019年的年中总结博客吗?我想有许多看博客的园友是没有读过我那篇文章的,KK很生气,后果很严重(开个玩笑了,怎么可能).给大家 ...
- python基础全部知识点整理,超级全(20万字+)
目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...
- Python碎碎念
1. 如何添加路径 主要有以下两种方式: 1> 临时的 import sys sys.path.append('C:\Users\Victor\Desktop') 2> 永久的 在Linu ...
随机推荐
- 解决浏览器SSL缓存,自动将http跳转至https导致无法访问的问题
PHP交流群 656679284 为PHP广大爱好者提供技术交流,有问必答,相互学习相互进步! 这里汇总一下几大常见浏览器 HSTS 的关闭方法. Safari 浏览器 完全关闭 Safari 删 ...
- Getting Flex 3 talking to Java via JSON
packagecom.giantflyingsaucer; importjava.io.*; importjava.io.PrintWriter; importjavax.servlet.*; imp ...
- Impala学习--代码生成(Code Generation)
代码生成 (Code Generation) Table of Contents 1 概述 2 为何使用代码生成 3 llvm 4 Impala使用IR 5 示例 6 总结 1 概述 Cloudera ...
- 动态配置生成echarts图表
动态配置x轴和y轴的数据,并且可以选择柱状图.折线图.饼状图等图形 父组件代码: <template> <div class="reportPicture"> ...
- 内网穿透之frp
官网文档:https://gofrp.org 1 Frp介绍frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 h ...
- BeautifulSoup(bs4)细致讲解
BeautifulSoup(bs4) BeautifulSoup是python的一个库,最主要的功能是从网页爬取数据,官方是这样解释的:BeautifulSoup提供一些简单,python式函数来处理 ...
- OSG开发笔记(三十七):OSG基于windows平台msvc2017x64编译器官方稳定版本OSG3.4.1搭建环境并移植Demo
前言 自行编译的osg版本插件比较多,如果对版本没有特定要求,但是对环境编译器有特定要求,可以反向融合编译器符合要求的osg版本. OSG下载过程 osg官网:http://www.osg ...
- openEuler欧拉使用rc.local实现开机自启动
设置权限 chmod 775 /etc/rc.local 普通的单条是,直接写在rc.local里 /usr/local/nacos/bin/startup.sh -m standalone 复杂点 ...
- [AGC029D] Grid game题解
这题很显然可以用贪心来解. 由于先手不动一定会让局数更少,所以先手要能动就动. 而后手一定是希望他的石子可以撞到一个障碍物上,这样先手就无法移动了,后手就可以让局数更少. 因为先手一定会能动就动,所以 ...
- 证书签名算法OID.1.2.156.10197.1.501
证书签名算法OID.1.2.156.10197.1.501 证书签名算法OID为1.2.156.10197.1.501表示该证书使用的是基于SM3的SM2签名算法 1.SM2证书数据和RSA算法证 ...