zoukankan      html  css  js  c++  java
  • 02. 导数与梯度、矩阵运算性质、科学计算库numpy

    一、数学基础
    二、numpy
     
     
     
     
    一、数学基础
    关键字:求导、偏导、梯度、复合函数求导链式法则
                 矩阵的转置、矩阵加减、矩阵乘法【矩阵乘法不满足交换律】
     
    二、numpy
    (1)转置和加、乘
    #coding:utf-8
    import numpy as np
    print np.__version__
     
    # 1- create narray
    array = np.array([1,2,3],dtype=np.uint8)
    print "array:",array
     
    # 2- zeros
    mat1 = np.zeros((2,3)) #(2,3) tuple
    print "mat1:",mat1
     
    # 3- 高维矩阵
    mat2 = np.zeros((1,2,3,4))
    print mat2.shape
    print mat2.size
     
    # 4- 标准矩阵运算
    # (1) 标量与矩阵相乘
    scalar = 2
    mat = np.ones((2,3))
    mat3 = scalar * mat
    print "mat3:",mat3
    # (2) 矩阵转置 mat.T
    mat = np.zeros((2,3))
    tmat = mat.T
    print mat.shape,tmat.shape
    mat4 = np.array((1,2,3))
    print "mat4:",mat4
    tmat4 = mat4.T
    print mat4.shape,tmat4.shape
    # (3) 矩阵的加法
    print "add--------------------"
    mat1 = np.array([[1,2],[3,4]])
    mat2 = np.zeros((2,2))
    mat3 = mat1 + mat2
    print "mat3:",mat3
    # (4) 矩阵的乘法
    print "multi------------------"
    mat1 = np.array([[1,2],[3,4]])
    mat2 = np.ones((2,2))
    mat3 = mat1.dot(mat2)
    print "mat3:",mat3
     
    (2)扩展运算
    #coding:utf-8
    import numpy as np
    # 扩展运算
    # (1) 对应元素相乘
    mat1 = np.array([[1,2],[3,4]])
    mat = mat1 * mat1
    print "mat:",mat
     
    # (2) 标量与矩阵相加
    scalar = 2
    mat1 = np.array([[1,2],[3,4]])
    mat = scalar + mat1
    print "mat:",mat
     
    # (3) 高位矩阵维度改变
    mat1 = np.zeros((1,2,3))
    mat = mat1.transpose(0,2,1) # 维度调换
    print mat1.shape,mat.shape
     
    # (4) broad cast 拓宽操作。先对原来的向量拓宽,再做加法
    mat1 = np.ones((3,4))
    vec = np.array([[1],[2],[3]])
    print mat1+vec
     
     
    (2)杂项运算
     
    #coding:utf-8
    import numpy as np
     
    # 杂项操作
    # (1) 生成随机数
    rannum = np.random.randn(2,3)
    print "rannum:",rannum
    # 生成一个指定尺寸的矩阵
    # 矩阵中的所有数字符合正态分布(normal distribution)
    met = [1,2,3]
    np.random.shuffle(met)
    print "shuffle_met:",met
     
    # (2) 对矩阵元素求和
    print np.sum(rannum)
     
    # (3) numpy axis
    print np.sum(rannum,axis = 0) # 列
    print np.sum(rannum,axis = 1) # 行
     
    # (4) e的指数
    print np.exp(rannum)
     
    # (5) 求最大下标
    a=[3,1,2,3,545,23,23,243]
    print np.argmax(a)

  • 相关阅读:
    Redis之String
    代码质量管理工具——SonarQube
    XML文件(2)--使用DOM4J示例
    XML文件(1)--使用DOM示例
    Maven之构件
    使用JS,获取URL中指定参数的值
    jQuery导入Eclipse后报错解决方法
    关于MySQL存储过程中遇到的一个错误
    学习MySQL之数据类型(四)
    jmeter直连数据库【转】
  • 原文地址:https://www.cnblogs.com/Years4Nancy/p/8492521.html
Copyright © 2011-2022 走看看