機器學習之numpy和matplotlib學習(十二)
阿新 • • 發佈:2018-11-01
今天主要來學習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.]]