python机器学习之十一 numpy库之矩阵(matrix)

本文主要介绍numpy库中的矩阵:

  1. 矩阵的创建
  2. 常见的矩阵运算
  3. 矩阵、列表、数组之间的转换

矩阵的创建

   语法格式:

numpy.matrix(data,dtype)

data:数据

dtype:数据类型,同数组

如:

m2 = np.matrix([[1,2,3],[4,5,6]])
m2
'''
matrix([[1, 2, 3],
        [4, 5, 6]])
'''

 数组转矩阵 mat

语法格式:numpy.mat(narray)

narray:数组

如:

from numpy import *
data1 = mat(zeros((3,3)))
data2 = mat(ones((2,4)))
data3 = mat(random.rand(2,2))
data4 = mat(random.randint(2,8,size=(2,5)))
data5 = mat(eye(2,2,dtype=int))
'''
data1
matrix([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
data2
matrix([[1., 1., 1., 1.],
        [1., 1., 1., 1.]])
data3
matrix([[0.67143174, 0.75772619],
        [0.15963105, 0.82548702]])
data4
matrix([[5, 4, 7, 2, 5],
        [7, 7, 4, 7, 6]])
data5
matrix([[1, 0],
        [0, 1]])
'''

常见的矩阵运算

* 、sum、max、min、hstack、vstack、.I

*:矩阵乘积,遵循矩阵乘积规则,支持矩阵与标量相乘

a1 = mat([1,2])
a2 = mat([[1],[2]])
a3 = a1 * a2
print(a3)
'''
matrix([[5]])
'''
print(a1*2)
'''
matrix([[2, 4]])
'''

sum

语法格式:

矩阵名称.sum(axis=某维)

    其余维不变,对指定维求和,指定维消失。

    不指定维数,表示对矩阵所有元素求和

a1 = np.mat([[1,2],[3,4],[5,6]])
a1.sum(axis=0)
'''
matrix([[ 9, 12]])
'''

a1.sum(axis=1)
'''
matrix([[ 3],
        [ 7],
        [11]])
'''
a1.sum()
#21

max:求矩阵元素最大值

min:求矩阵元素最小值

如:

 a = mat(random.randint(2,8,size=(2,5)))
a
'''
matrix([[6, 7, 6, 2, 7],
        [7, 5, 6, 6, 6]])
'''
a.max()
#7
a.min()
#2

hstack:

语法格式:

numpy.hstack(tup)

(a1,a2,...):矩阵

返回结果为numpy的数组,水平(按照列顺序)的把数组给堆叠起来。

vstack:

语法格式:

numpy.vstack(tup)

(a1,a2,...):矩阵

返回结果为numpy的数组,垂直(按照行顺序)的把数组给堆叠起来。

如:

a = mat(ones((2,2)))
b = mat(eye((2)))
c = hstack((a,b))
'''
matrix([[ 1.,  1.,  1.,  0.],
        [ 1.,  1.,  0.,  1.]])
'''
d = vstack((a,b))
'''
matrix([[ 1.,  1.],
        [ 1.,  1.],
        [ 1.,  0.],
        [ 0.,  1.]])
'''

.I:求矩阵转置

语法格式:矩阵名称.I

如:

a1 = mat(eye(2,2)*0.5)
a2 = a1.I
print(a1)
'''
matrix([[0.5, 0. ],
        [0. , 0.5]])
'''
print(a2)
'''
matrix([[2., 0.],
        [0., 2.]])
'''

print(a1*a2)
'''
matrix([[1., 0.],
        [0., 1.]])
'''

矩阵、列表、数组之间的转换

a = [[1,2],[3,4],[5,6]]   #列表

b = array(a)  #列表转数组

c = mat(b)  #数组转矩阵

c.getA()  # 矩阵转换为数组 

c.tolist()  # 矩阵转换为列表 

b.tolist() # 数组转换为列表

 

你可能感兴趣的:(python学习,由浅入深掌握神经网络))