首先, 导入pandas import pandas as pd

以及开启pylab: IPython里输入%pylab

http://www.bearrelroll.com/2013/05/python-pandas-tutorial/

基本操作

http://cloga.info/python/%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6/2013/09/17/pandas_intro/

pandas和numpy的关系: pandas是建立在numpy上面的, pandas可以处理不同类型的数据集合(heterogeneous data set: DataFrame), numpy处理的是相同类型的数据集合(homogeneous data set: ndarray)

读写csv文件 ...

Eclipse让我很喜欢的最大原因大概就是它的好用的快捷键了, 这里进行一下总结, 掌握这些快捷键可以让编辑代码变得更加高效.

基本快捷键

  • 格式化代码: ctrl+alt+F

非常实用的快捷键, 暂时还不知道别的编辑器还没有发现有同样功能的. 按一下代码就自动缩进得非常整齐了!

  • 注释/反注释: ctrl+alt+C
  • pydev下面的注释/反注释: ctrl+/

另外一些有用的快捷键

  • 显示提示: alt+/

这个可以说是eclipse快捷键里面最有用的一个. 可以显示代码提示的窗口, 这也是我喜欢eclipse的原因之一. 虽然编写代码的时候eclipse的提示框也会在适当的时候出来, 比如按下了.的时候, 但是当它没有出现的时候我们总可以按下alt+/让提示框弹出来. 尤其在使用Java的时候, eclipse的提示相当智能, 也就是说会根据上下文以及函数的定义等东西来提示那些可能出现的项目. 另外, 有时候可能定义了一个超长名字的变量(这样代码可能比较清楚一些), 然后用这个快捷键, 就只需要打一下这个很长名字的前几个字母就可以自动补全了(如果补全的不是想要的, 只需要多按几次这个快捷键就会显示其他可能了)!

  • 打开函数/变量的声明: F3

比方说在程序的某一段看到了调用一个函数, 然后想看看这个函数的内容, 这是不需要拿着鼠标上下滚动着找(有时候定义的函数可能在另一个文件里, 那就更难找了), 只需要按下 ...

Eclipse被称为编程的瑞士军刀, 意思就是只用一个eclipse就可以做很多事情.

最近越来越喜欢eclipse了, 因为作为编辑器而言, eclipse的编辑器让我用起来最舒服的一个(配合一些快捷键以后更是非常爽). 这半年多来发现了一些非常好用的eclipse的插件, 有了这些插件, eclipse可以做更多的事情... 接下来简单介绍一下:

插件安装的方法

先简单说一下eclipse的插件安装方法, 在eclispe界面上, 点击: Help->Install New Software:

之后添加对应的URL就可以了...

ADT

链接

eclipse里添加的URL:

https://dl-ssl.google.com/android/eclipse/

这个不用说了吧, Eclipse已经基本上是android开发的御用IDE了.

PyDev

链接

URL:

http://pydev.org/updates

python的开发更需要有一个提示的东东(好像叫pyLint, 就是可以发现代码里的一些显然的错误), 这个插件装好以后我就很少用geany写python程序了, 尤其是当程序超过100行以后...

但是让人不爽的是, 他需要新建一个project才能运行. 这也是Eclipse的一个让人不爽的方面. 如果是一个小的python程序的话我还是会用geany. 另外, 强烈推荐 ...

python的pickle/unpickle机制可以非常方便的保存一些计算的中间结果, 这一点java虽然也可以做到, 但是java里面的包的名字实在是长的让人记不住...

不过今天在使用pickle的时候遇到了一个很奇怪的问题.

是这样的, 原本写了一个程序main.py, 这个程序里进行了一些计算并且pickle下了这些内容, 后来我觉得一个程序main.py写这么多实在太长了, 于是就把那些辅助函数以及class的定义通通放进了一个util.py文件里. 并且在main.py的第一行写上:

from util import *

按理说这应该没有问题, 和一个main文件时运行的效果相同的, 但是当我运行的时候却显示util.py里面这行unpickle的语句有错误:

    airport_info = pk.load(file('airport_info.dict', 'rb')) 
    >>AttributeError: 'module' object has no attribute 'Airport'

其中Airport是我定义的一个类, 本来在main.py里面, 后来被我移动到了util.py里面...

感觉很奇怪, 于是去水源求助 ...

Created samedi 31 mai 2014UML就是可以把程序的结构用图的形式表达出来的东西(好像叫类图), 虽然写程序的时候不大会用到这种东西来搞, 但是写报告的时候如果能够加上一张图的话, 就可以少费些口舌来解释代码了, 而且还有一种高大上的赶脚... 所以写完程序写报告的时候可以用一下.

废话不多说, 看看我最后生成的UML图:

这张图表示一个抽象类Operration有三个子类, 然后他们之间的关系... 如果用文字的话要解释半天吧...

这张图是用Green UML做出来的, 这是一个eclipse插件, 安装方法为:

  • 在eclipse里, Help->Install New Software 然后Add这个URL: http://www.cse.buffalo.edu/faculty/alphonce/green
  • 然后一路Next安装就可以了...
  • 如果老师显示pending, 可能是代理的问题(在X非常不爽的一点...哎...), 不过没事, 代理的设置在: window → preference → General → Network Connections ...

Well, to be brief...

I made a french input method, if you got annoyed by the freaking french keyboard when typing accented words (i.e. é, û, ü, î,... ), or you are using a QWERTY keyboard, this will be quite useful !

In fact, I used XiaoxiaoInput and Fcitx, which are ...

据说这本书是最好的入门读物, 况且只有100来页 (减掉前面后面那些扯淡的 不到100页...)

那就用这本书过一下py的基本知识点吧! 看完以后收获不少, 把py涉及的很大一部分都讲到了. 这本书已经是够压缩的了, 不过我还是边看边自己再压缩了一遍(写在zim笔记里).

我看的是1.20版本, 2004年的, 因为这个版本针对的是py2.x, 作者主页上现在的版本针对的是py3. 另外感觉没必要看中文翻译版, 因为这里用的英语比较简单, 而且有的时候中文翻译反而不如原文表达的恰当.

preface+ch1+ch2

扯淡...

ch3. First Steps

  • There are two ways of using Python to run your program - using the interactive interpreter prompt or using a source file.

  • Anything to the ...

今天花了四个小时, 终于在linux下把eclipse下java开发opencv给搞定了... 至于为什么花这么久的时间... 且听我慢慢讲...

linux编译安装opencv

首先, linux下安装opencv其实不麻烦的, 参考文档即可完成: http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html

大致有以下几个步骤:

1) 安装gcc以及cmake等等乱七八糟的软件(不过ubuntu下默认差不多都有了吧...)

sudo apt-get install build-essential python-dev cmake

2) 下载opencv-2.4.8.zip并解压缩

3) 新建一个build文件夹

cd ~/opencv
mkdir build
cd build

4) 在终端里输入:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX ...

INF422的TD2, 这节TD是要做一个多线程筛选质数的程序, 关于java的多线程, 以前用过但是不知道啥意思, 在这里总结下.

创建进程

为了实现多线程, 需要定义一个新的class, 有两种方法: 或者继承自Thread类, 或者实现Runnable接口(关键是重载run()方法).

继承自Thread类

  • 写法1: 定义一个继承自Thread的内部类--

    class [类名] extends Thread{
    方法1;
    方法2
    
    public void run(){
    // …
    }
    属性1
    属性2
    
    }
    
  • 或者用下面种内联(inline)的写法, 不用给这个类起名字了(不过还要给这个实例取名字):

    private Thread [实例名] = new Thread () {
        public void run() {
        // ...
        }
    } ;
    

然后让进程开始, 就是: t.start(); 如果用 ...

这学期INF422, 第一节课就是android安装调试环境的搭建(居然要一节课?), 这里总结一下.

第一步: 下载bundle

下载ADT-Bundle 解压缩以后啥都有了, 包含一个eclipse...

第二步: 修改环境变量

linux下的环境变量放在.bashrc文件, 加入下面一行:

PATH=$PATH:<dir>/sdk/tools/:<dir>/sdk/platform-tools/:

其中<dir>是放置SDK的目录地址.

测试一下好不好使, 在终端中输入android, 看是否会弹出SDK manager

第三步: 新建一个virtual machine

可以用eclipse的AVDmanager做, 也可以用命令行做.

输入:

android list targets

找到想要的target(我们要4.1.2)的那个id(一个数字), 然后, 运行命令:

android create ...