章節1:前期準備
本文包含本教程所需要的編程語言Python和開發環境Anaconda的簡單介紹。
Anaconda安裝
之所以推薦使用Anaconda,是為了讓大家省去復雜的安裝和配置Tensorflow的時間,快速入門機器學習。而Anaconda指的是一個開源的Python發行版本,其包含了conda、Python、numpy、tensorflow等等180多個科學包及其依賴項。可以根據這篇文章來安裝Anaconda,安裝完成打開后有以下界面,可以在右邊Environments中配置或導入你所需要的科學包(后面課程有用到),而本教程接下來使用Jupyter notebook來進行機器學習的編程練習。
Python基礎
我們只回顧后面學習中將要使用的Python的一些核心概念,如果你已經熟悉了Python,可以跳過以下內容。如果你是Python的初學者,在全面了解Python后再學習后面的章節會更好。
Python在線學習資源
變量
在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')