<a href="http://www.jianshu.com/p/54870e9541fc">总目录</a>
课程页面:https://www.udacity.com/course/intro-to-data-analysis--ud170
授课教师:Caroline Buckey
如下内容包含课程笔记和自己的扩展折腾
准备工作:anaconda & jupyter notebook
很简单,共三步:
- 第一步:install anaconda http://continuum.io/downloads
- 第二步:打开terminal,cd到工作位置,run the command
jupyter notebook ipython_notebook_tutorial.ipynb
- 第三步:看看上面打开的tutorial。用的是markdown语法,很简单。运行一下各个code block,这个软件真心很好用。
看了一些有关IPython的介绍,总结如下:
- Steve Holden: Starting to Use the Jupyter Notebook
- Alfred Essa: Awesome Data Science: 1.0 Jupyter Notebook Tour
- nbconvert documentation
- Roshan: BibTex In Jupyter
NumPy 速览
- Roshan: NumPy Basics - IPython Notebook Tutorial
https://www.youtube.com/watch?v=o8fmjaW9a0A
Pandas 速览
- Roshan: Pandas - IPython Notebook Tutorial
https://www.youtube.com/watch?v=04zBNE2ZHSI
set
这门课程有一定难度,因为会涉及一些我从前没有用过的python功能。不过感谢互联网,它让我很容易就能检索&学习新内容。
- 有关python和set theory的简单介绍,可以参见:
http://www.python-course.eu/sets_frozensets.php - 官方文档对于
sets
module的介绍:
https://docs.python.org/2/library/sets.html - 可参见Ramalho于2015年出版的Fluent Python的p79开始的Set Theory部分, 这本书很不错。
- set功能对于了解数学里set theory的人来说很不难:
- wiki的set theory页面:https://en.wikipedia.org/wiki/Set_theory
++++++++++++++++++++++++++++++++++
set function 是 python 的 built-in function, 直接call就行了。
a = set('ZHANG Yong')
print a
print type(a)
Console:
set(['A', ' ', 'g', 'G', 'H', 'o', 'N', 'n', 'Y', 'Z'])
<type 'set'>
++++++++++++++++++++++++++++++++++
.add
a = set('ZHANG Yong')
print a
print type(a)
a.add("A")
print a
a.add("a")
print a
Console:
set(['A', ' ', 'g', 'G', 'H', 'o', 'N', 'n', 'Y', 'Z'])
<type 'set'>
set(['A', ' ', 'g', 'G', 'H', 'o', 'N', 'n', 'Y', 'Z'])
set(['A', ' ', 'g', 'G', 'H', 'o', 'N', 'n', 'a', 'Y', 'Z'])
Load Data from CSVs
- 课程提供了一个
enrollments.csv
的文档。 - 要注意的是account_key代表了一个人,但是可以有很多条记录都用这个account_key. 这个个别的学员可以取消,再加入,再取消,再加入。这个记录的这个特点,在之后的数据分析中会导致一些小问题。
首先是不美的代码:
import unicodecsv # ZY: need to install the package first
enrollments = []
f = open('enrollments.csv', 'rb')
reader = unicodecsv.DictReader(f) # ZY: read the csv file as dictionary
for row in reader:
enrollments.append(row)
f.close()
print enrollments
Console:
- [{u'status': u'canceled', u'is_udacity': u'True', u'is_canceled': u'True', u'join_date': u'2014-11-10', u'account_key': u'448', u'cancel_date': u'2015-01-14', u'days_to_cancel': u'65'}, {u'status': u'canceled', u'is_udacity': u'True', u'is_canceled': u'True', u'join_date': u'2014-11-05', u'account_key': u'448', u'cancel_date': u'2014-11-10', u'days_to_cancel': u'5'}, ... {u'status': u'current', u'is_udacity': u'False', u'is_canceled': u'False', u'join_date': u'2015-08-23', u'account_key': u'686', u'cancel_date': u'', u'days_to_cancel': u''}]
美的代码:
import unicodecsv
with open('enrollments.csv', 'rb') as f:
reader = unicodecsv.DictReader(f)
enrollments = list(reader)