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. 一文搞懂 ARM 64 系列: PACISB

    1 PAC AMR64提供了PAC(Pointer Authentication Code)机制. 所谓PAC,简单来说就是使用存储在芯片硬件上的「密钥」,一个「上下文」,与「指针地址」进行加密计算, ...

  2. Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  3. Python脚本消费多个Kafka topic

    在Python中消费多个Kafka topic,可以使用kafka-python库,这是一个流行的Kafka客户端库.以下是一个详细的代码示例,展示如何创建一个Kafka消费者,并同时消费多个Kafk ...

  4. 第四届河南省 CCPC 大学生程序设计竞赛

    F-集合之和 规定集合A和集合B的加法运算:\(A+B={x+y|x∈A,y∈B}\),设有限数集A中的元素个数为|A|,现给定n,请你构造集合A使得\(|A+A|=n\),如果A不存在,输出-1 题 ...

  5. go build tags使用

    转载请注明出处: 在 Go 语言中,构建标签(Build Tags)是一种用于条件编译的机制,可以帮助开发者根据不同的条件选择性地编译特定的代码块.它们在处理多平台和多环境的代码时特别有用,例如为不同 ...

  6. 分布式系统架构1:共识算法Paxos

    1.背景 今天开始更新分布式的文章,工作几年后还没系统的学习分布式的内容,趁着还有时间学习沉淀的时候多输出些文章 2.为什么需要分布式共识算法 思考:现在你有一份随时变动的数据,需要确保它正确存储在网 ...

  7. 揭秘“山姆黄牛”背后的技术逻辑:用Java实现会员管理系统的防黄牛策略

    在浙江绍兴的山姆超市外,"黄牛"现象引发了广泛关注.这些"黄牛"通过提供带入和结账服务,让未办理会员卡的消费者也能进入超市购物.这一行为不仅扰乱了市场秩序,也对 ...

  8. docker部署最新6.2版Zabbix Server端

    一.安装docker,参见本博客docker安装文档. 二.启动空的mysql -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="z ...

  9. 【Amadeus原创】word图片隐藏在文字里了的终极解决办法

    终极解决方案: 点击该图片,然后,选择正文,即可.

  10. 中电金信:源启混沌工程平台(V4)与东方通TongwebV7.0完成适配认证

    ​近日,源启混沌工程平台(V4)与北京东方通科技股份有限公司(以下简称东方通)应用服务器软件东方通TongwebV7.0完成产品兼容互认证,通过在产品功能.性能.兼容性方面的全面严格测试,得出结论:东 ...