1. 程式人生 > >機器學習之numpy和matplotlib學習(十二)

機器學習之numpy和matplotlib學習(十二)

今天主要來學習numpy中的一些特殊矩陣的建立,他們在機器學習中有很大的作用

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author  : SundayCoder-俊勇
# @File    : numpy4.py
import numpy as np
# numpy基本學習第四課
# 今天學習一些特殊矩陣的建立。
# 本節演示的矩陣基本都是三行四列的矩陣。
# 1、建立一個元素全是1的矩陣。
a=np.ones([3,4],dtype=int)
print a
# 輸出結果:
# [[1 1 1 1]
#  [1 1 1 1]
# [1 1 1 1]] # 2、建立一個元素全是0的矩陣。 b=np.zeros([3,4]) print b # 輸出結果: # [[ 0. 0. 0. 0.] # [ 0. 0. 0. 0.] # [ 0. 0. 0. 0.]] # 3、建立一個empty的陣列。 c=np.empty([3,4]) print c #輸出結果: # [[ 1.05687439e-297 0.00000000e+000 0.00000000e+000 0.00000000e+000] # [ 0.00000000e+000 0.00000000e+000 0.00000000e+000 0.00000000e+000] # [ 0.00000000e+000 0.00000000e+000 0.00000000e+000 0.00000000e+000]] # 對於建立empty陣列的解釋:它建立的矩陣的元素和zeros基本差不多。
# 4、建立一個全為2的矩陣是不是也有np.twos()函式? # 答案為沒有,因為這些陣列可以在1和0經過四則運算得來。 # 5、建立一個對角全為1的4x4的正方形對角矩陣。 e=np.eye(4) print e # 輸出結果: # [[ 1. 0. 0. 0.] # [ 0. 1. 0. 0.] # [ 0. 0. 1. 0.] # [ 0. 0. 0. 1.]] # 6、另外一個方法也是建立對角矩陣。 f=np.identity(4) print f # 輸出結果: # [[ 1. 0. 0. 0.] # [ 0. 1. 0. 0.] # [ 0. 0. 1. 0.]
# [ 0. 0. 0. 1.]] # 兩個方法的區別 # np.identity只能建立方形矩陣 #eye[N,[, M, k, dtype]), N為行數,M為列數(如果不設定預設為N),對角線序列號: 0 對應主對角線; # np.eye可以建立矩形矩陣,且k值可以調節。 # 為1的對角線的位置偏離度,0居中,1向上偏離1,2偏離2, # 以此類推,-1向下偏離。值絕對值過大就偏離出去了,整個矩陣就全是0了。 # 例子:使用eye()函式建立一個3行4列的矩陣,預設k=0。 e1=np.eye(3,4) print e1 # 輸出結果: # [[ 1. 0. 0. 0.] # [ 0. 1. 0. 0.] # [ 0. 0. 1. 0.]] # 再來看一個k=1例子: e2=np.eye(3,4,k=1) print e2 # 輸出結果: # [[ 0. 1. 0. 0.] # [ 0. 0. 1. 0.] # [ 0. 0. 0. 1.]] # # 再來看一個k=2例子: e3=np.eye(3,4,k=2) print e3 # 輸出結果: # [[ 0. 0. 1. 0.] # [ 0. 0. 0. 1.] # [ 0. 0. 0. 0.]]

輸出結果:

[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]
[[  5.90473797e-300   0.00000000e+000   0.00000000e+000   0.00000000e+000]
 [  0.00000000e+000   0.00000000e+000   0.00000000e+000   0.00000000e+000]
 [  0.00000000e+000   0.00000000e+000   0.00000000e+000   0.00000000e+000]]
[[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]]
[[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]]
[[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]]
[[ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]]
[[ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]
 [ 0.  0.  0.  0.]]

更新完畢