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 的常量模块。

from scipy import constants

以下实例,我们通过导入 scipy 库,然后查看 scipy 库的版本号:

实例

import 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,常用符号  来表示。

以下实例输出圆周率:

实例

from scipy import constants

print(constants.pi)

执行以上代码,输出结果如下:

3.141592653589793

以下实例输出黄金比例:

实例

from scipy import constants

print(constants.golden)

执行以上代码,输出结果如下:

1.618033988749895

我们可以使用 dir() 函数来查看 constants 模块包含了哪些常量:

实例

from scipy import 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 文件:

实例

from scipy import io
import numpy as np

arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})

注意:上面的代码会在您的计算机上保存了一个名为 "arr.mat" 的文件。

导入 Matlab 格式数据

loadmat() 方法可以导入 Matlab 格式数据。

该方法参数:

  • filename - 保存数据的文件名。

返回一个结构化数组,其键是变量名,对应的值是变量值。

以下实例从 mat 文件中导入数组:

实例

from scipy import io
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 数据的数组:

实例

from scipy import io
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:

实例

from scipy import io
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)的更多相关文章

  1. https://www.runoob.com/python/python-variable-types.html

    https://www.runoob.com/python/python-variable-types.html

  2. Scipy - Python library - Math tool - Begin

    Introduction Scientific Computing Tools for Python. Seen in Scipy.org. Environment Linux, CentOS 7 w ...

  3. linux python 安装 nose lapack atlas numpy scipy

    linux python 安装 nose lapack atlas numpy scipy --http://lib.csdn.net/article/python/1262 作者:maple1149 ...

  4. 手把手教你从零搭建Python数据分析环境

    由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...

  5. Python之路【第一篇】:介绍、基本语法、流程控制

    一.python 简介 python 特点 Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网 ...

  6. Python 个人常用汇总

    Python 常用文件操作总结: 导入库路径:sys.path.append('/usr/local/lib/python2.7/site-packages') from random import ...

  7. Python基础,day1

    一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...

  8. 《阿k学Python》一Python入门(一)

    前言 各位看博客的园友们,大家好,我就是那个风流倜傥的KK,还记得我那篇2019年的年中总结博客吗?我想有许多看博客的园友是没有读过我那篇文章的,KK很生气,后果很严重(开个玩笑了,怎么可能).给大家 ...

  9. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  10. Python碎碎念

    1. 如何添加路径 主要有以下两种方式: 1> 临时的 import sys sys.path.append('C:\Users\Victor\Desktop') 2> 永久的 在Linu ...

随机推荐

  1. Python爬虫基本库

    3 基本库的使用 1)使用 urllib 是python内置的HTTP请求库,包含request.error.parse.robotparser urlopen() urllib.request.ur ...

  2. Java8之新特性

    简单例子 实例: ​ 处理集合时,通常会迭代遍历它的元素,并在每个元素上执行某项操作,例如假设我们想要对某本的所有长单词进行计数,首先需要将所有单词放到一个列表中 var contents = new ...

  3. js中的数组去重的多种方法

    1. indexOf()方法 const arr = [1,2,3,4,5,1,2,3,4,6,1,1,6,6,7,5,8] const newArr = [] arr.forEach(item =& ...

  4. CAD Plus 使用帮助

    English help 移动端使用帮助 文档更新日期: 2023-07-28; 这篇文章将介绍如何使用CAD Plus app; 如果您有疑问或需要帮助请发送邮件至 3167292926@qq.co ...

  5. CSP模拟50联测12 T2 赌神

    CSP模拟50联测12 T2 赌神 题面与数据规模 Ps:超链接为衡水中学OJ. 思路 \(subtask2\): 由于\(x_i\)较小,考虑 dp. 假设一开始球的颜色为红和蓝,设 \(dp[i] ...

  6. .NET云原生应用实践(六):多租户初步

    本章目标 多租户简介 实现public租户下的用户数据隔离 出于开发进度考虑,本章暂不会完全实现多租户的整套体系,而是会实现其中的一小部分:基于默认public租户的数据隔离,并在本章节中会讨论多租户 ...

  7. 深入解析Apache Mina源码(1)——Mina的过滤器机制实现

    1.深入解析Apache Mina源码(1)--Mina的过滤器机制实现 2.深入解析Apache Mina源码(2)--Mina的事件模型 3.深入解析Apache Mina源码(3)--Mina的 ...

  8. 2024御网杯信息安全大赛个人赛wp_2024-11-27

    MISC题解 题目附件以及工具链接: 通过网盘分享的文件:御网杯附件 链接: https://pan.baidu.com/s/1LNA6Xz6eZodSV0Io9jGSZg 提取码: jay1 --来 ...

  9. python拉取grafana监控图形

    python拉取grafana监控图形 python通过grafana提供的api接口拉取grafana监控图形并保存至word文档生成日报发送邮件 前置条件: 1.grafana平台需要安装graf ...

  10. 案例 | 某药企引进正也科技S2P系统 整合营销业务

    为了获取更大的市场空间,医药健康行业正迎来一波前所未有的产业升级.尽管不少企业取得了许多成绩,但仍面临诸多挑战. 天津某医药公司是集医药研发.药品生产.医药商业.大健康产业于一体的大型企业.敢为人先开 ...