小言_互联网的博客

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<矩阵和随机数>python)

412人阅读  评论(0)

矩阵和随机数

矩阵

创建矩阵


  
  1. #创建矩阵
  2. astring = np.mat( "1 2 3; 4 5 6")
  3. alist = [[ 1, 2, 3],[ 4, 5, 6]]
  4. anplist = np.array(alist)
  5. print(np.matrix(astring)) #字符串、列表、元组、数组
  6. print(np.mat(astring)) #字符串、列表、元组、数组
  7. print(np.mat(alist))
  8. print(np.mat(anplist))

矩阵对象的属性


  
  1. jz=np.mat( '1 2 3 ; 4 5 6')
  2. #矩阵的维数
  3. print(np.ndim(jz))
  4. print(jz.ndim)
  5. #矩阵的形状
  6. print(np.shape(jz))
  7. print(jz.shape)
  8. #矩阵的元素个数
  9. print(np.size(jz))
  10. print(jz.size)
  11. #元素的数据类型
  12. print(jz.dtype)
  13. #矩阵的转置
  14. print(jz.T)
  15. #矩阵的求逆
  16. print(jz.I)

矩阵运算


  
  1. alist1 = [[ 0, 1],[ 2, 3]]
  2. alist2 = [[ 1, 1],[ 2, 0]]
  3. a1=np.mat(alist1)
  4. a2=np.mat(alist2)
  5. print(a1*a2)

随机数模块


  
  1. #随机数模块
  2. print(np.random.rand( 2, 3)) #创建2*3的随机数组,取值是在[0,1)之间均匀分布的浮点数
  3. print(np.random.rand()) #参数为空返回一个数
  4. print(np.random.uniform( 1, 5,( 3, 2))) #创建3*2的随机数组,取值是在1到5之间均匀分布的浮点数
  5. print(np.random.randint( 1, 5,( 3, 2))) #创建3*2的随机数组,取值是在1到5之间均匀分布的整数
  6. print(np.random.randn( 2, 3)) #创建2*3的随机数组,符合标准正太分布
  7. print(np.random.normal( 0, 1,( 3, 2))) #创建3*2的随机数组,符合正太分布,均值为0,方差为1

因为是随机数,使用同样的语句,所得到的结果也是不同的


  
  1. print(np.random.rand( 2, 3))
  2. print(np.random.rand( 2, 3))

伪随机数:

由随机种子,根据一定的算法生成的。

随机种子:

指定随机数生成时所用算法开始的整数值。

如果使用相同的seed( )值,则每次生成的随即数都相同。

如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生 成的随机数因时间差异而不同。

设置的seed()值仅一次有效。

随机数产生的算法,和系统有关

设置随机种子


  
  1. np.random.seed( 999)
  2. print(np.random.rand( 2, 3))
  3. np.random.seed( 999)
  4. print(np.random.rand( 2, 3))
  5. print(np.random.rand( 2, 3))

打乱顺序函数


  
  1. arr = np.arange( 10)
  2. print(arr)
  3. np.random.shuffle(arr)
  4. print(arr)


转载:https://blog.csdn.net/qq_39397927/article/details/116068290
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场