分类 Data 下的文章

Matlab 与 Excel 混合编程

Matlab与Excel混合编程其实早在2010年科学网左正伟博客就有一篇文章总结了,到现在(2015年)也不为过时。这里在简要引用一下,作者终结了四种(当时)主流的实现方式:

  • 利用Excel Link(最常用方法),具体参见Matlab帮助或Excel Link手册
  • 利用Excel生成器(Matlab作COM服务器)
  • 利用Active X控制(Matlab作COM客户端)
  • 文件导入方法(利用xlsreadxlswrite函数读写Excel文件)

路上这篇文章主要介绍最后一种方法,即利用xlsreadxlswrite函数去读写Excel文件,再用Matlab进行数据处理的思路。因为路上的需求非常简单(粗暴):统计一堆按照某种格式制作的Excel文件(工作簿)中每个工作表(工作表/Worksheet)中指定位置的内容,并返回统计结构。
Matlab去满足这两种需求也很简单:利用xlsread读取内容,处理后,利用xlswrite写入预定格式的Excel文件中。其中xlsread用的函数调用方法为:

[num,txt,raw] = xlsread(filename,sheet,xlRange)

xlswrite的调用方法为:

xlswrite(filename,A,sheet,xlRange)

同时我们使用

[satus,sheets] = xlsfinfo(filename)

得到每个工作表(worksheet)的名称,同时我们也可以通过numel(sheets)获得工作表数量信息。而为了去自动读取所有的Excel文件,我们将所有要处理的文件放在一个文件夹下,然后利用 file = dir('./*.xlsx') 命令将所有Excel文件存入一个结构数组中。

思路(步骤)总结

  1. 利用 dir 函数读取所有要处理的Excel文件信息
  2. 利用xlsfinfo函数获得Exce文件中的工作表(worksheet)信息(名称、数量等)
  3. 利用xlsread函数读取Excel文件中指定工作表(worksheet)指定位置数据
  4. Matlab 编程处理数据
  5. 利用xlswrite 函数将相关数据以存入预定格式的 Excel 文件中

使用 Python 轻松抓取网页

注:文章基于python3,路上通过这篇文章中的内容,写了20多行代码,实现定时抓取某网页某几个数据的目标

准备工作

要使用python抓取网页,可以使用两个包:requests用于下载网页,而BeautifulSoup则对网页进行结构化解析。如果你在电脑上安装了pip,则可以使用下面的命令下载安装这两个包:

pip install requests beautifulsoup4

或者按照引用文章1将两个包安装到虚拟环境。
(实际上路上通过分析发现,在路上的需求里,第二个包没有用到。。)

抓取网页

抓取网页及其简单,假如我要抓取「https://pip.pypa.io/en/stable/」这个网页,则使用:

import requests
response = requests.get(‘https://pip.pypa.io/en/stable/')

在函数返回后,就能从response.text中获得这个页面的文本数据(html或者其他文本)。

抓取数据后,使用BeautifulSoup对文本数据处理,便会得结构化的HTML,然后就可以利用BeautifulSoup强大的HTML处理能力抓取相关内容了。但是路上经过分析发现需要抓取的内容位于某xx.js文件内,是json变量。所以BeautifulSoup没能使用的上。。

使用python处理JSON内容

python原生支持JSON,使用json.loads(JSONdata)将JSON转换为xml,然后使用xml相关技术得到相关数据。具体步骤略去。
python处理JSON可以参见这篇文章

数据科学(Data Science)之路

数据科学是一门跨学科的专业,在「大数据」的背景(噱头)下,看起来很有前途

根据Drew Conway给出的数据科学的一个文氏图,可以看出数据科学是Hacking Skills, Math & Statistics Knowledge 以及Substantive Expertise的大交集。
Data_Science_VD.png

要学习数据科学,路上认为可以从上面的文氏图来推算应该的学习内容,它们应该包括:

  1. Hacking Skills (计算机知识)
    • 基本的编程语言和与数据处理相关的包/框架,例如python语言
    • 数据处理框架,比如处理大数据的利器:Hadoop
  2. Math & Statistics Knowledge (数理统计知识)
    • 统计学(概率统计)
    • (机器)学习理论
  3. 数据科学综合知识
    • 数据挖掘等