Python&機器學習總結(一)

① numpy中np.c_和np.r_數組

np.r_是按列鏈接兩個矩陣,就是把兩矩陣上下相加,要求列數相等,相似於pandas中的concat()。網絡

np.c_是按行鏈接兩個矩陣,就是把兩矩陣左右相加,要求行數相等,相似於pandas中的merge()。dom

下面看一個例子:機器學習

import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.c_[a,b]

print(np.r_[a,b])
print(c)
print(np.c_[c,a])

輸出結果:函數

1 [1 2 3 4 5 6]
2 
3 [[1 4]
4  [2 5]
5  [3 6]]
6 
7 [[1 4 1]
8  [2 5 2]
9  [3 6 3]]

注意:在numpy中,一個列表雖然是橫着表示的,但它是列向量。post

 

②numpy.random.randn()  以及相似函數學習

numpy.random.rand(d0,d1,…,dn)——and函數根據給定維度生成[0,1)之間的數據,包含0,不包含1,例如:字體

 np.random.rand(4,2) spa

輸出:.net

 array([[ 0.02173903,  0.44376568],

   [ 0.25309942,  0.85259262],

   [ 0.56465709,  0.95135013],

   [ 0.14145746,  0.55389458]])

 np.random.rand(4,3,2) # shape: 4*3*2 

輸出:

array([[[ 0.08256277,  0.11408276],
        [ 0.11182496,  0.51452019],
        [ 0.09731856,  0.18279204]],
 
       [[ 0.74637005,  0.76065562],
        [ 0.32060311,  0.69410458],
        [ 0.28890543,  0.68532579]],
 
       [[ 0.72110169,  0.52517524],
        [ 0.32876607,  0.66632414],
        [ 0.45762399,  0.49176764]],
 
       [[ 0.73886671,  0.81877121],
        [ 0.03984658,  0.99454548],
        [ 0.18205926,  0.99637823]]])

numpy.random.randn(d0,d1,…,dn)——randn函數返回一個或一組樣本,具備標準正態分佈。

 np.random.randn() # 當沒有參數時,返回單個數據 

輸出:

 -1.1241580894939212 

 

 np.random.randn(2,4) 

輸出:

array([[ 0.27795239, -2.57882503,  0.3817649 ,  1.42367345],
       [-1.16724625, -0.22408299,  0.63006614, -0.41714538]])

注:標準正態分佈又稱爲u分佈,是以0爲均值、以1爲標準差的正態分佈,記爲N(0,1)

轉載自:http://www.javashuo.com/article/p-qzfxlsws-kg.html

 

③numpy.linspace

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

在指定的間隔內返回均勻間隔的數字。

返回num均勻分佈的樣本,在[start, stop]。

這個區間的端點能夠任意的被排除在外。

參數解釋:

start:序列起始點

stop:序列結束點(endpoint爲真時包括stop,爲假時不包括)

(如下是可選參數)

num:生成的樣本數,默認50

endpoint:爲真時包括stop,爲假時不包括

restep:爲真時輸出帶有步長,爲假時輸出只有一個ndarry

例如:

In [4]: np.linspace(1, 10, 10, endpoint = False, retstep= True)
Out[4]: (array([ 1. ,  1.9,  2.8,  3.7,  4.6,  5.5,  6.4,  7.3,  8.2,  9.1]), 0.9)

dtype:輸出的數組的類型

 

④numpy.zeros

zeros(shape, dtype=float, order='C')

返回來一個給定形狀和類型的用0填充的數組;

參數解釋:

shape:形狀

dtype:數據類型,可選參數,默認numpy.float64

order:可選參數,c表明與c語言相似,行優先;F表明列優先

例如:

np.zeros(5)
array([ 0.,  0.,  0.,  0.,  0.])

np.zeros((5,), dtype=np.int)
array([0, 0, 0, 0, 0])

 

⑥matplotlib.pyplot裏contour與contourf

contour和contourf都是畫三維等高線圖的,不一樣點在於contourf會對等高線間的區域進行填充,例如:(左:contour;右:contourf)

不管contour仍是contourf,都是繪製三維圖,其中前兩個參數x和y爲兩個等長一維數組,第三個參數z爲二維數組(表示平面點xi,yi映射的函數值)。
正是因爲contourf能夠填充等高線之間的空隙顏色,呈現出區域的分劃狀,因此不少分類機器學習模型的可視化常會藉助其展示。
 
⑦plt.rcParams[]
pylot使用rc配置文件來自定義圖形的各類默認屬性,稱之爲rc配置或rc參數。經過rc參數能夠修改默認的屬性,包括窗體大小、每英寸的點數、線條寬度、顏色、樣式、座標軸、座標和網絡屬性、文本、字體等。rc參數存儲在字典變量中,經過字典的方式進行訪問,例如:
plt.rcParams['savefig.dpi'] = 300 #圖片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
plt.rcParams['figure.figsize'] = (10, 10)        # 圖像顯示大小
plt.rcParams['image.interpolation'] = 'nearest'  # 最近鄰差值: 像素爲正方形
#Interpolation/resampling即插值,是一種圖像處理方法,它能夠爲數碼圖像增長或減小象素的數目。
#某些數碼相機運用插值的方法創造出象素比傳感器實際能產生象素多的圖像,或創造數碼變焦產生的圖像。實際上,幾乎全部的圖像處理軟件支持一種或以上插值方法。圖像放大後鋸齒現象的強弱直接反映了圖像處理器插值運算的成熟程度
plt.rcParams['image.cmap'] = 'gray'  # 使用灰度輸出而不是彩色輸出
plt.axis('off')    #打印圖片的時候不顯示座標軸

 

⑧np.random.seed(0)

做用:使得隨機數可預測

具體來說:當咱們設置相同的seed,每次生成的隨機數相同。若是不設置seed,則每次會生成不一樣的隨機數

例如:

 >>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55,  0.72,  0.6 ,  0.54])
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55,  0.72,  0.6 ,  0.54])
 >>> numpy.random.rand(4)
array([ 0.42,  0.65,  0.44,  0.89])
>>> numpy.random.rand(4)
array([ 0.96,  0.38,  0.79,  0.53])

 

⑨plt.cm.Spectral

例如:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(1) # 產生相同的隨機數

X = np.random.randn(1, 10)
Y = np.random.randn(1, 10)
label = np.array([1,1,0,0,0,0,0,1,1,1])#####兩種顏色

plt.scatter(X, Y, c = label, s = 180, cmap = plt.cm.Spectral);
這句代碼plt.scatter(X, Y, c = label, s = 40, cmap = plt.cm.Spectral);中的cmap = plt.cm.Spectral是什麼意思?
cmap = plt.cm.Spectral實現的功能是給label爲1的點一種顏色,給label爲0的點另外一種顏色。
 
⑩ pandas dataframe添加列:
df=pd.DataFrame(columns=['A','B'],data=[[1,2],[3,4]])

#df
#  A B
#0 1 2
#1 3 4

df['C']=None

#df
#  A B  C
#0 1 2 None 
#1 3 4 None
相關文章
相關標籤/搜索