今天主要來學(xué)習(xí)numpy中的一些特殊矩陣的創(chuàng)建,他們在機(jī)器學(xué)習(xí)中有很大的作用
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : SundayCoder-俊勇
# @File : numpy4.py
import numpy as np
# numpy基本學(xué)習(xí)第四課
# 今天學(xué)習(xí)一些特殊矩陣的創(chuàng)建。
# 本節(jié)演示的矩陣基本都是三行四列的矩陣。
# 1、創(chuàng)建一個元素全是1的矩陣。
a=np.ones([3,4],dtype=int)
print a
# 輸出結(jié)果:
# [[1 1 1 1]
# [1 1 1 1]
# [1 1 1 1]]
# 2、創(chuàng)建一個元素全是0的矩陣。
b=np.zeros([3,4])
print b
# 輸出結(jié)果:
# [[ 0. 0. 0. 0.]
# [ 0. 0. 0. 0.]
# [ 0. 0. 0. 0.]]
# 3、創(chuàng)建一個empty的數(shù)組。
c=np.empty([3,4])
print c
#輸出結(jié)果:
# [[ 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]]
# 對于創(chuàng)建empty數(shù)組的解釋:它創(chuàng)建的矩陣的元素和zeros基本差不多。
# 4、創(chuàng)建一個全為2的矩陣是不是也有np.twos()函數(shù)?
# 答案為沒有,因?yàn)檫@些數(shù)組可以在1和0經(jīng)過四則運(yùn)算得來。
# 5、創(chuàng)建一個對角全為1的4x4的正方形對角矩陣。
e=np.eye(4)
print e
# 輸出結(jié)果:
# [[ 1. 0. 0. 0.]
# [ 0. 1. 0. 0.]
# [ 0. 0. 1. 0.]
# [ 0. 0. 0. 1.]]
# 6、另外一個方法也是創(chuàng)建對角矩陣。
f=np.identity(4)
print f
# 輸出結(jié)果:
# [[ 1. 0. 0. 0.]
# [ 0. 1. 0. 0.]
# [ 0. 0. 1. 0.]
# [ 0. 0. 0. 1.]]
# 兩個方法的區(qū)別
# np.identity只能創(chuàng)建方形矩陣
#eye[N,[, M, k, dtype]), N為行數(shù),M為列數(shù)(如果不設(shè)置默認(rèn)為N),對角線序列號: 0 對應(yīng)主對角線;
# np.eye可以創(chuàng)建矩形矩陣,且k值可以調(diào)節(jié)。
# 為1的對角線的位置偏離度,0居中,1向上偏離1,2偏離2,
# 以此類推,-1向下偏離。值絕對值過大就偏離出去了,整個矩陣就全是0了。
# 例子:使用eye()函數(shù)創(chuàng)建一個3行4列的矩陣,默認(rèn)k=0。
e1=np.eye(3,4)
print e1
# 輸出結(jié)果:
# [[ 1. 0. 0. 0.]
# [ 0. 1. 0. 0.]
# [ 0. 0. 1. 0.]]
# 再來看一個k=1例子:
e2=np.eye(3,4,k=1)
print e2
# 輸出結(jié)果:
# [[ 0. 1. 0. 0.]
# [ 0. 0. 1. 0.]
# [ 0. 0. 0. 1.]]
# # 再來看一個k=2例子:
e3=np.eye(3,4,k=2)
print e3
# 輸出結(jié)果:
# [[ 0. 0. 1. 0.]
# [ 0. 0. 0. 1.]
# [ 0. 0. 0. 0.]]
輸出結(jié)果:
[[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.]]