Python3科学计算常见库入门

Numpy快速数据处理库

参见我的博客

http://www.cnblogs.com/brightyuxl/p/8981294.html

http://www.cnblogs.com/brightyuxl/p/8977075.html

http://www.cnblogs.com/brightyuxl/p/8855948.html

http://www.cnblogs.com/brightyuxl/p/8846701.html

SciPy数值计算库

常数和特殊函数

from scipy import constants
print('真空中的光速:{}'.format(constants.c))
print('普朗克常数: {}'.format(constants.h))
print('电子质量(数值,单位,误差): {}'.format(constants.physical_constants['electron mass']))
真空中的光速:299792458.0
普朗克常数: 6.62607004e-34
电子质量(数值,单位,误差): (9.10938356e-31, 'kg', 1.1e-38)

特殊函数

Gamma函数\(\Gamma\)是统计学中经常出现的一个特殊函数:

\[\Gamma(z) = \int_0^{\infty}t^{z-1}e^{-t}dt
\]

import scipy.special
print(scipy.special.gamma(0))
print(scipy.special.gamma(0.5))
print(scipy.special.gamma(1))
print(scipy.special.gamma(1.5))
print(scipy.special.gamma(2))
inf
1.7724538509055159
1.0
0.8862269254527579
1.0

\(\ln(|\Gamma(x)|)\)可以计算更大的数

scipy.special.gammaln(1000)
5905.220423209181
import numpy as np
print(1+1e-20)
print(np.log(1+1e-20))
print(scipy.special.log1p(1e-20)) # log1p(x) = log(1+x)
1.0
0.0
1e-20

matplotlib快速绘图库

import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2) plt.figure(figsize=(8,4)) plt.plot(x,y,label='$sin(x)$', color='red',linewidth=2)
plt.plot(x,z,'b--',label='$cos(x^2)$') plt.xlabel('Time(s)')
plt.ylabel('Volt')
plt.title('PyPlot First Example')
plt.ylim(-1.2,1.2)
plt.legend
plt.savefig('My_figure')
plt.show()

Pandas数据分析友好库

import pandas as pd

s = pd.Series([1,2,3,4,5,6], index=['a','b','c','d','e','f'])
print(s)
a    1
b 2
c 3
d 4
e 5
f 6
dtype: int64

SymPy符号运算库

\[e^{i\pi} + 1 = 0
\]

from sympy import E, I, pi
E**(I*pi) + 1 # 证明欧拉等式
0
from sympy import symbols, expand
x = symbols('x')
expand(E**(I*x))
exp(I*x)

Python3小知识点

1.写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

其实人跟树一样,越是向往高处的阳光,它的根就越要伸向黑暗的地底。

def StringCounter(seq):
dic = {
'num':0,
'string':0,
'space':0,
'other':0
}
for s in seq:
if s.isdigit():
dic['num'] += 1
elif s.isalpha():
dic['string'] += 1
elif s.isspace():
dic['space'] += 1
else:
dic['other'] += 1
return dic
# 验证函数
print(StringCounter('dfasfdaslfkjl 12312 @@!#!@#'))
{'num': 5, 'string': 13, 'space': 5, 'other': 7}

2.分析下列代码的运行过程

x=1

def f1():
def f2():
print(x)
return f2 x=100 def f3(func):
x=2
func() x=10000 f3(f1())
10000

3.查看a与b的不同之处

a = [1,2,3]
b = [(1),(2),(3)]
print(a == b)
print(a is b)
True
False

4.切片回忆

name = ['trek', 'cannondale', 'redline', 'specialized', 'trek']
print('1:', name)
print('2:', name[0], name[2])
print('3:', name[1:3]) #切片
print('4:', name[-2:]) #切片
print('5:', name[::-1]) #切片的结果是倒序排列
print('6:', name[:-1]) #切片的结果是,输出到倒数第二位 -1-1=-2
1: ['trek', 'cannondale', 'redline', 'specialized', 'trek']
2: trek redline
3: ['cannondale', 'redline']
4: ['specialized', 'trek']
5: ['trek', 'specialized', 'redline', 'cannondale', 'trek']
6: ['trek', 'cannondale', 'redline', 'specialized']

Python3科学计算库概况的更多相关文章

  1. SciPy - 科学计算库(上)

    SciPy - 科学计算库(上) 一.实验说明 SciPy 库建立在 Numpy 库之上,提供了大量科学算法,主要包括这些主题: 特殊函数 (scipy.special) 积分 (scipy.inte ...

  2. python科学计算库的numpy基础知识,完美抽象多维数组(原创)

    #导入科学计算库 #起别名避免重名 import numpy as np #小技巧:从外往内看==从左往右看 从内往外看==从右往左看 #打印版本号 print(np.version.version) ...

  3. python科学计算库numpy和绘图库PIL的结合,素描图片(原创)

    # 导入绘图库 from PIL import Image #导入科学计算库 import numpy as np #封装一个图像处理工具类 class TestNumpy(object): def ...

  4. numpy科学计算库的基础用法,完美抽象多维数组(原创)

    #起别名避免重名 import numpy as np #小技巧:print从外往内看==shape从左往右看 if __name__ == "__main__": print(' ...

  5. Python科学计算库

    Python科学计算库 一.numpy库和matplotlib库的学习 (1)numpy库介绍:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成 ...

  6. ubuntu14.04 下安装 gsl 科学计算库

    GSL(GNU Scientific Library)作为三大科学计算库之一,除了涵盖基本的线性代数,微分方程,积分,随机数,组合数,方程求根,多项式求根,排序等,还有模拟退火,快速傅里叶变换,小波, ...

  7. windows下如何快速优雅的使用python的科学计算库?

    Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy.pandas和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些 ...

  8. Python科学计算库Numpy

    Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...

  9. 科学计算库Numpy基础&提升(理解+重要函数讲解)

    Intro 对于同样的数值计算任务,使用numpy比直接编写python代码实现 优点: 代码更简洁: numpy直接以数组.矩阵为粒度计算并且支持大量的数学函数,而python需要用for循环从底层 ...

随机推荐

  1. VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)

    在win下配置opencv3.0.0还是比较简单的,这里简单说一下配置过程:参考链接:http://blog.csdn.net/u010009145/article/details/50756751 ...

  2. [Vue warn]: Do not use built-in or reserved HTML elements as component id: header

    因为header在HTML5里面是个原生的标签,所以在开发的时候会提示错误,解决方法:修改components里面左边的header

  3. Mac 安装 JDK

    1.访问Oracle官网 http://www.oracle.com,下载 JDK 2.安装JDK 解压 1 中下载的压缩包,在Finder下载目录中双击安装. 或者命令行安装,详见:http://w ...

  4. jmeter正则表达式提取器多模块相互调用

    提取return的结果 (1)例: 创建账户和转账功能 注:以下为soap协议 添加账户1 创建正则表达式提取器(提取创建的结果) 点击导入接口文档URL地址和方框内方法 同上方法添加账户2 点击正则 ...

  5. SpringMVC后台token防重复提交解决方案

    本文介绍如何使用token来防止前端重复提交的问题. 目录 1.思路 2.拦截器源码实现 3.注解源码 4.拦截器的配置 5.使用指南 6.结语 思路 1.添加拦截器,拦截需要防重复提交的请求 2.通 ...

  6. 渗透测试工具之sqlmap

    1. sqlmap是什么 在这个数据有价的时代数据库安全已经成为了重中之重,于是就整理了一下最常用的一款(反正我上大学的时候它还是蛮流行的...)数据库安全方面的渗透测试工具sqlmap的使用笔记. ...

  7. binlog和redo log日志提交

    组提交(group commit)是MYSQL处理日志的一种优化方式,主要为了解决写日志时频繁刷磁盘的问题.组提交伴随着MYSQL的发展不断优化,从最初只支持redo log 组提交,到目前5.6官方 ...

  8. canvas抛物线运动轨迹

    本来是想做一个贝塞尔曲线运动轨迹的 公式太复杂了,懒得算,公式在最后 我先画了一个抛物线,我确定了两个点,起点(0,0),终点(200,200) 用坐标系可算出方程 y=-0.005x^2 现在找出终 ...

  9. Web前端开发最佳实践(13):前端页面卡顿?可能是DOM操作惹的祸,你需要优化代码

    文档对象模型(DOM)是一个独立于特定语言的应用程序接口.在浏览器中,DOM接口是以JavaScript语言实现的,通过JavaScript来操作浏览器页面中的元素,这使得DOM成为了JavaScri ...

  10. Codeforces 247D Mike and Fish

    Mike and Fish 我们可以把这个模型转换一下就变成有两类点,一类是X轴, 一类是Y轴, 每个点相当于对应的点之间建一条边, 如果这条边变红两点同时+1, 变蓝两点同时-1. 我们能发现这个图 ...