今天主要来学习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.]]