numpy's sovling specific problem(numpy之解决特定问题)
2015-07-14 23:08
756 查看
numpy's sovling specific problem(numpy之解决特定问题)
2 特定问题
2.1 numpy.lib.stride_tricks.as_strided
2.2 numpy.meshgrid()
环境,确实带来了很大的方便。对每一章,只需要快速建立一个文件,把对应的example复制到文件中去,然后 把buffer直接发送到python运行环境,就能马上看到结果。对于不懂的语句,又能eval 当前语句。如果想做 实验,也可以直接在buffer中写,不用跳到python的交互式中去。而且还可以省去没一个例子之前的模块导入时 间。真是既方便又省时。以后有时间可以写文章谈谈这种快速学习环境。
学习numpy或scipy等数据分析模块,需要安装对应的开发包,这里推荐anaconda,跨平台的python分析工具包汇
总,不仅带了很多分析库,还自带ipython qtconsole和notebook。对于想快速了解python数据分析的来说真是太 方便了,要感谢为此做出努力的人。直接在scipy官网上可以找到,windows上直接下载安装就可以用,linux也一 样,只不过,我把里面anaconda中库的路径添加到PYTHONPATH中去。
下面便是我自己探索的过程中碰到的一些比较费解的问题,分享出来,供新手们参考。也给我自己当作一个笔记。 希望以后可以随着学习的深入,写成一个系列。
初看到应该跟我有同样的疑惑,这个[27,3,9,1] 和 (3, 3, 3 ,3) 是怎么来的,经过试验,应该等价于以下语句
看输出,便可知这样建立了数组元素的索引。
下面是我自己写的注释,也是建立索引的意思。
Date: 2015-07-14T23:05+0800
Author: 行者知
Org version 7.9.3f with Emacs version 24
Validate XHTML 1.0
numpy's sovling specific problem(numpy之解决特定问题)
Table of Contents
1 前言2 特定问题
2.1 numpy.lib.stride_tricks.as_strided
2.2 numpy.meshgrid()
1 前言
这几天开始熟悉numpy的模块,推荐Numpy Cookbook。有例子,蛮好上手。不得不提一下之前搭建的python开发环境,确实带来了很大的方便。对每一章,只需要快速建立一个文件,把对应的example复制到文件中去,然后 把buffer直接发送到python运行环境,就能马上看到结果。对于不懂的语句,又能eval 当前语句。如果想做 实验,也可以直接在buffer中写,不用跳到python的交互式中去。而且还可以省去没一个例子之前的模块导入时 间。真是既方便又省时。以后有时间可以写文章谈谈这种快速学习环境。
学习numpy或scipy等数据分析模块,需要安装对应的开发包,这里推荐anaconda,跨平台的python分析工具包汇
总,不仅带了很多分析库,还自带ipython qtconsole和notebook。对于想快速了解python数据分析的来说真是太 方便了,要感谢为此做出努力的人。直接在scipy官网上可以找到,windows上直接下载安装就可以用,linux也一 样,只不过,我把里面anaconda中库的路径添加到PYTHONPATH中去。
下面便是我自己探索的过程中碰到的一些比较费解的问题,分享出来,供新手们参考。也给我自己当作一个笔记。 希望以后可以随着学习的深入,写成一个系列。
2 特定问题
2.1 numpy.lib.stride_tricks.as_strided
书中例子sudoku = numpy.array([ [2, 8, 7, 1, 6, 5, 9, 4, 3], [9, 5, 4, 7, 3, 2, 1, 6, 8], [6, 1, 3, 8, 4, 9, 7, 5, 2], [8, 7, 9, 6, 5, 1, 2, 3, 4], [4, 2, 1, 3, 9, 8, 6, 7, 5], [3, 6, 5, 4, 2, 7, 8, 9, 1], [1, 9, 8, 5, 7, 3, 4, 2, 6], [5, 4, 2, 9, 1, 6, 3, 8, 7], [7, 3, 6, 2, 8, 4, 5, 1, 9] ]) strides=sudoku.itemsize * numpy.array([27,3,9,1]) shape = (3, 3, 3, 3) squares = numpy.lib.stride_tricks.as_strided(sudoku, shape=shape, strides=strides)
初看到应该跟我有同样的疑惑,这个[27,3,9,1] 和 (3, 3, 3 ,3) 是怎么来的,经过试验,应该等价于以下语句
>>> [(27*i+3*j+9*k+z) for i in range(3) for j in range(3) for k in range(3) for z in range(3) ] [0, 1, 2, 9, 10, 11, 18, 19, 20, 3, 4, 5, 12, 13, 14, 21, 22, 23, 6, 7, 8, 15, 16, 17, 24, 25, 26, 27, 28, 29, 36, 37, 38, 45, 46, 47, 30, 31, 32, 39, 40, 41, 48, 49, 50, 33, 34, 35, 42, 43, 44, 51, 52, 53, 54, 55, 56, 63, 64, 65, 72, 73, 74, 57, 58, 59, 66, 67, 68, 75, 76, 77, 60, 61, 62, 69, 70, 71, 78, 79, 80]
看输出,便可知这样建立了数组元素的索引。
2.2 numpy.meshgrid()
另一个例子coordinates = numpy.meshgrid(xindices, yindices)
下面是我自己写的注释,也是建立索引的意思。
# meshgrid # x = numpy.linspace(1,3,3) # y = numpy.linspace(1,2,2) # meshgrid(x,y) # [array([[1., 2., 3.], # [1., 2., 3.]]), # array([[1., 1., 1.], # [2., 2., 2.]])] # and than can generate # => [(1,1) (1,2) (1,3) # (2,1) (2,2) (2,3)]
Date: 2015-07-14T23:05+0800
Author: 行者知
Org version 7.9.3f with Emacs version 24
Validate XHTML 1.0
相关文章推荐
- python 七种邮件内容发送方法实例
- 第一个python程序简单加法计算器
- 第一个python程序简单加法计算器
- mac 终端下设置python tab键功能
- IndentationError: unexpected indent python
- [Python]Django部署问题
- Python 无法显示行号(下)
- Python中time,datetime模块的常见使用方法
- python基础教程总结5——函数
- python import 的陷阱
- python import 包导入的陷阱
- Python Idle 无法显示行号(上)
- The C Programming Language Example and Python Implemented
- Python Security 之 端口扫描
- 图解Python深拷贝和浅拷贝
- 学习Python
- Python基础之变量类型
- Python日志输出——logging模块
- python 区分图像大小(A2、A3、A4)
- python基础教程总结4—基本语句