章節(jié)1:前期準(zhǔn)備
本文包含本教程所需要的編程語言Python和開發(fā)環(huán)境Anaconda的簡單介紹。
Anaconda安裝
之所以推薦使用Anaconda,是為了讓大家省去復(fù)雜的安裝和配置Tensorflow的時間,快速入門機器學(xué)習(xí)。而Anaconda指的是一個開源的Python發(fā)行版本,其包含了conda、Python、numpy、tensorflow等等180多個科學(xué)包及其依賴項??梢愿鶕?jù)這篇文章來安裝Anaconda,安裝完成打開后有以下界面,可以在右邊Environments中配置或?qū)肽闼枰目茖W(xué)包(后面課程有用到),而本教程接下來使用Jupyter notebook來進(jìn)行機器學(xué)習(xí)的編程練習(xí)。

Python基礎(chǔ)
我們只回顧后面學(xué)習(xí)中將要使用的Python的一些核心概念,如果你已經(jīng)熟悉了Python,可以跳過以下內(nèi)容。如果你是Python的初學(xué)者,在全面了解Python后再學(xué)習(xí)后面的章節(jié)會更好。
Python在線學(xué)習(xí)資源
變量
在Python中,你可以將任何值直接賦予一個變量,接著就可以直接引用和操作該變量。
myVariable = 'hello world'
print(myVariable)
hello word
列表
我們從Python中最基本的數(shù)據(jù)容器列表講起,
# 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
分片
指的是列表的子集(下標(biāo)從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的下標(biāo)
print(X.index(7))
2
- 計算列表中的元素個數(shù)
print(len(X))
7
- 在列表末尾添加元素
X.append(99)
print(X)
[2, 5, 7, -2, 0, 8, 13, 99]
- 在下標(biāo)為1的地方插入元素
X.insert(1, 55)
print(X)
[2, 55, 5, 7, -2, 0, 8, 13, 99]
復(fù)雜列表
在Python中創(chuàng)建列表最便捷的方法就是通過對其他的列表進(jìn)行操作,注意:** 是指數(shù)乘法操作,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(根據(jù)元素是否大于3)
z = [x>3 for x in X]
print(z)
[False, True, True, True, False, False, True, True, True]
字典
字典是另一種存儲數(shù)據(jù)的方法,可以使用key來查找數(shù)據(jù)
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
循環(huán)
for循環(huán)
names = ['Alice', 'Bob', 'Carol', 'David']
for name in names:
print('Hi %s' % name)
Hi Alice
Hi Bob
Hi Carol
Hi David
從range中的兩個端點獲取一組整數(shù)
for i in range(5, 9):
print(i)
5
6
7
8
函數(shù)
函數(shù)是指一段可以重復(fù)使用的代碼塊
def myFunction(myArgument):
print('Hello '+myArgument)
myFunction('Alice')
myFunction('Bob')
Hello Alice
Hello Bob
類
類給Python帶來了面向?qū)ο缶幊?/p>
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中有許多可以使用的函數(shù)庫
讓我們來導(dǎo)入兩個庫:math和matplolib.pyplot(化名為plt)
用math庫來計算1的余弦值
import matplotlib.pyplot as plt
import math
z = math.cos(1)
print(z)
0.5403023058681398
繪圖
我們來繪制sine函數(shù)的曲線,后面我們將學(xué)習(xí)更多關(guān)于繪圖方面的概念
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')
