章节1:前期准备
本文包含本教程所需要的编程语言Python和开发环境Anaconda的简单介绍。
Anaconda安装
之所以推荐使用Anaconda,是为了让大家省去复杂的安装和配置Tensorflow的时间,快速入门机器学习。而Anaconda指的是一个开源的Python发行版本,其包含了conda、Python、numpy、tensorflow等等180多个科学包及其依赖项。可以根据这篇文章来安装Anaconda,安装完成打开后有以下界面,可以在右边Environments中配置或导入你所需要的科学包(后面课程有用到),而本教程接下来使用Jupyter notebook来进行机器学习的编程练习。
Python基础
我们只回顾后面学习中将要使用的Python的一些核心概念,如果你已经熟悉了Python,可以跳过以下内容。如果你是Python的初学者,在全面了解Python后再学习后面的章节会更好。
Python在线学习资源
- Learn Python the Hard Way
- Codecademy
- Learnpython.org
变量
在Python中,你可以将任何值直接赋予一个变量,接着就可以直接引用和操作该变量。
myVariable = 'hello world'
print(myVariable)
hello word
列表
我们从Python中最基本的数据容器列表讲起,
# basic list in Python# basic
X = [2, 5, 7, -2, 0, 8, 13]
# lists are 0-indexed, so index 2 is the third element in X
print(X[2])
7
分片
指的是列表的子集(下标从0开始)
# slicing
y = X[0:2]
print(y)
y = X[:-2] # equivalent to x[0:4]
print(y)
[2, 5]
[2, 5, 7, -2, 0]
列表操作
列表中的各种方法:
- 在列表中找到值为7的下标
print(X.index(7))
2
- 计算列表中的元素个数
print(len(X))
7
- 在列表末尾添加元素
X.append(99)
print(X)
[2, 5, 7, -2, 0, 8, 13, 99]
- 在下标为1的地方插入元素
X.insert(1, 55)
print(X)
[2, 55, 5, 7, -2, 0, 8, 13, 99]
复杂列表
在Python中创建列表最便捷的方法就是通过对其他的列表进行操作,注意:** 是指数乘法操作,x**2指x^2。
新列表是x的平方
z = [x**2 for x in X]
print(z)
[4, 3025, 25, 49, 4, 0, 64, 169, 9801]
新列表是True/False(根据元素是否大于3)
z = [x>3 for x in X]
print(z)
[False, True, True, True, False, False, True, True, True]
字典
字典是另一种存储数据的方法,可以使用key来查找数据
z = {'name':'Gene', 'apples':5, 'oranges':8}
print(z['name'])
print(z['oranges'])
if 'apples' in z:
print('yes, the key apples is in the dict z')
Gene
8
yes, the key apples is in the dict z
循环
for循环
names = ['Alice', 'Bob', 'Carol', 'David']
for name in names:
print('Hi %s' % name)
Hi Alice
Hi Bob
Hi Carol
Hi David
从range中的两个端点获取一组整数
for i in range(5, 9):
print(i)
5
6
7
8
函数
函数是指一段可以重复使用的代码块
def myFunction(myArgument):
print('Hello '+myArgument)
myFunction('Alice')
myFunction('Bob')
Hello Alice
Hello Bob
类
类给Python带来了面向对象编程
class MyClass(object):
def __init__(self, message): # constructor
self.message = message # assign local variable in object
def print_message(self, n_times=2):
for i in range(n_times):
print('%s' % self.message)
M = MyClass('Hello OF Course!')
M.print_message(3)
Hello OF Course!
Hello OF Course!
Hello OF Course!
库
Python中有许多可以使用的函数库
让我们来导入两个库:math和matplolib.pyplot(化名为plt)
用math库来计算1的余弦值
import matplotlib.pyplot as plt
import math
z = math.cos(1)
print(z)
0.5403023058681398
绘图
我们来绘制sine函数的曲线,后面我们将学习更多关于绘图方面的概念
X = [0.1*x for x in range(-50,50)]
Y = [math.sin(x) for x in X]
# make the figure
plt.figure(figsize=(6,6))
plt.plot(X, Y)
plt.xlabel('x')
plt.ylabel('y = sin(x)')
plt.title('My plot title')