[SciPy入门指南这个教程是为了帮助初学者掌握scipy并且肯能快地实际使用。什么是scipy、numpy、matplotlib?它们是用来干什么的?如何使用scipy工作学习使用scipy示例会话

python和networkx的三个给力科学计算的基友:numpy、scipy和matplotlib。

numpy擅长数组处理,多维数组的产生与访问,还有庞大的函数库,包括:求和、平均值、方差、最值、排序、矩阵、矩阵类和线性代数模块等。其安装,在第一篇中有说。

matplotlib擅长画图,点和线多形态展示、坐标轴变换等。其安装在第一篇有说。

scipy很强大,常微分方程求解、信号处理、图像处理等。安装好python编译器后,到scipy官网上下载相应的软件包(http://sourceforge.net/projects/scipy/files/),由于本人安装的是python-2.6,下载相应版本,然后点击exe安装;安装完毕,在IDEL里面输入import scipy进行测试(ps:网上有说用easy_install去安装,结果没有成功,应该是Linux下可以,windows下不可以)

这三者基本次序是数据存在numpy中,低级处理用numpy,高级处理用scipy,数据显示用matplotlib。

2.  numpy

numpy提供了两个基本的对象:narray和ufunc。

narray:存储单一数据类型的多维数组

ufunc:能够对数组进行处理的函数

2.1 narray对象

在narray对象中存储这多维度数组,有数组就有类型。基本的数据类型有:

[先决条件在阅读这个教程之前,你多少需要知道点python。如果你想重新回忆下,请看看Python Tutorial.如果你想要运行教程中的示 numpy中的基本数据类型 类型 类型说明 bool True or False int 所处平台的整型(一般为int32或int64) int8 字节型(-128-127) int16 16位整型(-32768-32767) int32 32位整型 int64   unit8 无符号整型(0-255) unit16 无符号整型(0-65535) unit32   unit64   float 64位标准float float16 半精度浮点数:1位标志位、5位指数位、10位小数位 float32 单精度浮点:1、8、23 float64 双精度:1,11,52 complex 标准的128位复数     当然,除了基本的数据类型,numpy还支持数据结构类型的数组。

(1)narray对象的创建:

import numpy as np

>>> a=np.array([1,2,3,4])

>>> b=np.array((6,7,8,9))

>>> a.shape

(4,)

>>> a.shape=2,2

>>> a

array([[1, 2],

[3, 4]])

>>> a.shape=1,-1

>>> a

array([[1, 2, 3, 4]])

>>> a=np.arange(0,1,0.1)

#产生(0,1]的数组,数组每个元素直接的差为0.1

>>> a

array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

>>> a=np.linspace(0,1,10)

#linsapce(a,b,endpoint=True | False),True的时候产生[0,1]的等差数列,False的时候为[0,1)

>>> a

array([ 0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,

0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])

>>> a=np.logspace(0,1,12,base=2,endpoint=false)

Traceback (most recent call last):

File "", line 1, in

a=np.logspace(0,1,12,base=2,endpoint=false)

NameError: name 'false' is not defined

#logsapce产生等比数列,logspace(a,b,c,base=10 | 2,endpoint=True | False),base指定了a和b的指数,代表了范围;c指定了等比数列的元素个数

>>> a=np.logspace(0,1,12,base=2,endpoint=False)

>>> a

array([ 1. , 1.05946309, 1.12246205, 1.18920712, 1.25992105,

1.33483985, 1.41421356, 1.49830708, 1.58740105, 1.68179283,

1.78179744, 1.88774863])

>>> a=np.zeros(10)

>>> a

array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

>>> a=np.ones(10)

>>> a

array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) (2)存取元素

数组访问的下标从0开始

特定元素的index访问。可以用index访问,例如对于数组a,可以有:a[5]

范围index访问。a[2:5],下标从2到5(左闭右开的区间)

a[1:-1:2],下表从1到尾部,2表示每隔一个元素获取一个元素

a[5:1:-2],第三个参数即步长为负数,这里为-2,即逆序每隔一个元素获取一个元素

数据结构数组的建立与访问:(可以看到,数组内部就像字典,其访问根据索引)

>>> persontype=np.dtype({'names':['name','age','weight'],'formats':['S32','i','f']},align=True)

>>> a=np.array([("Zhang",32,75.5),("wang",24,65.3)],dtype=persontype)

>>> a

array([('Zhang', 32, 75.5), ('wang', 24, 65.300003051757812)],

dtype=[('name', '|S32'), ('age', '

>>> a[0]

('Zhang', 32, 75.5)

>>> a[0].name

Traceback (most recent call last):

File "", line 1, in

a[0].name

AttributeError: 'numpy.void' object has no attribute 'name'

>>> a[1]['name']

'wang'

>>> 2.2 ufunc运算

x=np.linspace(0,2*np.pi,10)

>>> x

array([ 0. , 0.6981317 , 1.3962634 , 2.0943951 , 2.7925268 ,

3.4906585 , 4.1887902 , 4.88692191, 5.58505361, 6.28318531])

>>> y=np.sin(x)

>>> y

array([ 0.00000000e+00, 6.42787610e-01, 9.84807753e-01,

8.66025404e-01, 3.42020143e-01, -3.42020143e-01,

-8.66025404e-01, -9.84807753e-01, -6.42787610e-01,

-2.44929360e-16])

>>> np.sin(x,out=x) #在计算时,指定了输出out为x,所以x中的元素也改变了

array([ 0.00000000e+00, 6.42787610e-01, 9.84807753e-01,

8.66025404e-01, 3.42020143e-01, -3.42020143e-01,

-8.66025404e-01, -9.84807753e-01, -6.42787610e-01,

-2.44929360e-16])

>>> x

array([ 0.00000000e+00, 6.42787610e-01, 9.84807753e-01,

8.66025404e-01, 3.42020143e-01, -3.42020143e-01,

-8.66025404e-01, -9.84807753e-01, -6.42787610e-01,

-2.44929360e-16])

>>> np.add(x,y)

#add(x,y[,z])即可以指定将结果存入z中,如果没有z,则默认存入y中

#出了add之外,数值运算还有数组减法substract(x,y[,z]),乘法multiply(x,y[,z]),元素取负negative(x[,y]),x**y-power(x,y[,z]),x%y-remainder(x,y[,z])

#还有布尔运算,equal(x,y[,z]),不等not_equal(x,y[,z]),小于等于less_equal(x,y[,z]),大于greater,大于等于greater_equal

array([ 0.00000000e+00, 1.28557522e+00, 1.96961551e+00,

1.73205081e+00, 6.84040287e-01, -6.84040287e-01,

-1.73205081e+00, -1.96961551e+00, -1.28557522e+00,

-4.89858720e-16])

>>> 此外,还有求和sum、最小min、最大max、乘积dot

[网上找了半天,终于把要安装的资料找到了。其他的不怎么全,就自己再次总结一下写。         我自己安装的是python 2.7。所以以下的东东都是针对2.7的软件。         nump

用python输出世界你好汉_networkx使用笔记(三)之好汉篇numpy(2)相关推荐

  1. 用python输出世界你好汉_python print 格式输出跟老齐学Python之有容乃大的list(4)

    [0, -2, -4, -6, -8] 有了这个内置函数,很多事情就简单了.比如: 复制代码 代码如下: >>> range(0,100,2) [0, 2, 4, 6, 8, 10, ...

  2. 用python输出世界你好_Hello World! 我的python之旅开始了~

    本人测试萝卜出生,测试做了快两年了,越来越觉得测试工作的重复性与枯燥性不能适应,决定转转开发,首当其冲就瞄上了python,不用多说了,直接开始吧! 首先肯定是输出与输入: print("H ...

  3. 用python输出世界你好_python3------print 打印输出

    # 1.打印字符串 print('hello world!') 输出结果: hello world! #2.打印中文字符串 print ('世界,你好!') 输出结果: 世界,你好! # 3.打印变量 ...

  4. python socket服务器_python网络编程学习笔记(三):socket网络服务器

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较.步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对象 ...

  5. c语言实数的输出和占位_C语言学习笔记(三):占位符

    %d:整型的占位符(占位置)%f:小数型(浮点型)的占位符   %c:字符型的占位符 基本数据类型有整型(int),短整型(short),长整型(long),单精度浮点型(float),双精度浮点型( ...

  6. python爬虫urllib 数据处理_python爬虫学习笔记(三)-爬取数据之urllib库

    1. 小试牛刀 怎样扒网页呢? 其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS,如果把 ...

  7. python输出时间代码_Python获取世界多地时间怎么写代码呢?

    地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早.东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算,这给人们带来不便. 为了克服时间上的混乱,1884年在华盛顿召开的一次国 ...

  8. 树莓派4B安装系统,配置远程连接和WiFi,更新源,更新中文支持,基本Linux命令,用Python输出hello和“你好,世界”

    树莓派4B 系列1 从入门到进阶 作者(当然就是我本人了,哈哈哈哈哈),写这篇文章的目的是给刚入门树莓派或者从3B/3B+版本过度到4B的小朋友们总结出一些成系统的规律和方法,以及4B全新版本的变化. ...

  9. 用python输出斐波那契数列的前20项_python输出斐波那契数列

    如何用Python输出一个Fibonacci数列有时候觉得自己像个神经病.既纠结了自己,又打扰了别人. #python3def fibo(n): if n受辱时的唯一办法就是忽视它,不能忽视它,就藐视 ...

  10. python求三角形面积步骤_通过求三角形面积步入python程序世界.pdf

    通过求三角形面积步入python程序世界 第一章 通过求三角形面积步入 Python 程序世界 本章通过一个求三角形面积的案例带领读者快速进入 Python 世界,案例涉及一些编程必 须知道的内容,包 ...

最新文章

  1. SP4062电路接口芯片保护IC
  2. Django 前台通过json 取出后台数据
  3. java socket/Serversocket编程详解(中/英文)
  4. 电脑卡得厉害,得采取一些措施了
  5. linux硬链接不能创建目录,为什么硬链接不允许用于目录?
  6. 将“softmax+交叉熵”推广到多标签分类问题
  7. linux中vim内容定位,Linux运维行走江湖必备之:vim命令常用参数
  8. Stateflow_duration计时
  9. 正弦光栅的生成matlab,matlab做正弦光栅衍射的计算机模拟
  10. python语言的主网址-python调用浏览器,打开一个网址
  11. 蓝桥2014c++真题:神奇算式
  12. Security+认证学习/备考经验
  13. linux上clion使用教程,linux clion使用教程
  14. Jquery API帮助文档 chm
  15. 战神服务器IP修改,战神引擎芒果数据库查询和修改玩家IP+账号+密码教程
  16. 分布式高可用:故障恢复
  17. css 加粗或斜体hover鼠标划过,导致异常闪动,整体宽度增加的解决办法
  18. 根据卫星运动矢量计算轨道六根数
  19. sFTP 上传或下载文件与文件夹
  20. x / k向上取整转换为向下取整

热门文章

  1. Flutter打开手机手电筒
  2. 计算机语言pasen难吗,帕森WD-996 1G参数
  3. TED Talk | Rebecca Saxe :On Reading Minds
  4. LCM模块闪屏现象分析
  5. visio 2013 导出无边框图片
  6. PLC自学是否可行?
  7. WIN10 环境下 Tensorflow 检测不到GPU (GTX1050笔记本版可以安装CUDA)
  8. 使用Jmeter与简介
  9. STM32————复用功能按键输入(一键多用)
  10. 广州大学2019计算机录取,广州大学2019年录取分数线