机器学习之numpy和matplotlib学习(十二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33094993/article/details/74010742

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

更新完毕

猜你喜欢

转载自blog.csdn.net/qq_33094993/article/details/74010742