AI之路,第二篇:python数学知识2

第二篇:python数学知识2

线性代数

导入相应的模块;

>>> import numpy as np     (数值处理模块)
>>> import scipy as sp

1,张量实现;

生成元素全为0 的二维张量,两个维度分别3,4.

>>> np.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>>

生成三维的随机张量,三个维度分别是2,3,4;

>>> np.random.rand(2,3,4)
array([[[0.38758731, 0.5499685 , 0.54972813, 0.57450416],
[0.35331611, 0.16655625, 0.12040096, 0.90553467],
[0.30474903, 0.381874 , 0.371502 , 0.79308308]],

[[0.21948554, 0.39107485, 0.96109378, 0.62545556],
[0.79382549, 0.94084427, 0.25833607, 0.03340559],
[0.53158233, 0.9919193 , 0.98290661, 0.34611917]]])
>>>

2, 矩阵实现;(Matrix 矩阵)

创建一个3*3 的零矩阵,矩阵这里zeros函数的参数是一个tuple类型

>>> np.mat(np.zeros((3,3)))
matrix([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
>>>

3,单位矩阵实现;

单位矩阵,对角线元素均为1, 其他位置均为0 的方阵;

>>> np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
>>>

4,reshape运算

用来改变一个张量的维度数和每个维度的大小;

例: 一个10*10的图片保存时直接存为一个包含100个元素的序列, 在读取后就可以使用reshape将其从1*100变成10*10;

生成一个包含整数0-11的向量;

>>> x = np.arange(12)
>>> x
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> x.shape     #查看数组大小
(12,)
>>> x = x.reshape(1,12)  #将x转换成二维矩阵,其中矩阵的第一个维度为1
>>> x
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]])
>>> x.shape   #查看数组大小
(1, 12)
>>> x = x.reshape(3,4)   # 将x转换3*4的矩阵
>>> x
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>

5,转置实现;

向量和矩阵的转置是交换行列顺序,而三维及其以上张量的转置就需要指定转换维度;

生成包含5个元素的向量x并将其转置;

>>> x = np.arange(5).reshape(1,-1)
>>> x
array([[0, 1, 2, 3, 4]])
>>> x.T
array([[0],
[1],
[2],
[3],
[4]])
>>>

#生成3*4的矩阵并转置
>>> y = np.arange(12).reshape(3,4)
>>> y
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> y.T
array([[ 0, 4, 8],
[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11]])
>>> A = np.arange(24).reshape(2,3,4)
>>> A
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> A.transpose(1,0,2)
array([[[ 0, 1, 2, 3],
[12, 13, 14, 15]],

[[ 4, 5, 6, 7],
[16, 17, 18, 19]],

[[ 8, 9, 10, 11],
[20, 21, 22, 23]]])
>>>

猜你喜欢

转载自www.cnblogs.com/weizitianming/p/9501242.html