首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Numpy 模块基础学习(2)

Numpy 模块基础学习(2)

3. Numpy基础运算

    基本运算加减乘除,幂运算以及矩阵运算

    >>>import numpy as np
    >>>a=np.arange(10,41,10)  # 创建数组array([10, 20, 30, 40])
    >>>b=np.arange(4)  # 创建数组 array([0, 1, 2, 3])
    >>>a-b        #a,b 数组行列数相同,做减法运算
    array([10, 19, 28, 37])
    >>>a+b
    array([10, 21, 32, 43])
    >>>a*b
    array([  0,  20,  60, 120])
    >>>a**b        #以b数组中元素作为a数组中相应元素的幂做运算
    array([    1,    20,   900, 64000])
    >>>a**2   # 简单的幂运算
    array([ 100,  400,  900, 1600])
    >>>np.sin(a)
    array([-0.54402111,  0.91294525, -0.98803162,  0.74511316]) # 三角函数运算
    >>>a<20   #对数组中的值进行逻辑判断,返回一个bool值数组
    array([ True, False, False, False], dtype=bool)
    >>>
    # 矩阵乘法dot
    >>>np.dot(a,b)   #简单一维矩阵乘法
    200
    >>>d=np.arange(1,7).reshape(2,3)
    >>>e=np.arange(2,8).reshape(3,2)
    >>>np.dot(d,e)   #多维矩阵相乘
    array([[28, 34],
           [64, 79]])
    #  *表示矩阵点乘,如A*B表示A点乘B矩阵

    数组一些其他常用方法sum(),min(),max()

    >>>import numpy as np
    >>>a=np.random.random((2,4)) #生成1以内的随机数并创建2行4列的数组
    >>>a
    array([[ 0.67865178,  0.82898517,  0.19739667,  0.54224819],
           [ 0.74727939,  0.33392007,  0.32268768,  0.81595398]])
    >>>np.sum(a)
    4.4671229255139142
    >>>np.min(a)
    0.19739667308187692
    >>>np.max(a)
    0.82898516901089903
    >>>
    # 如果仅需要对列或者行进行上述操作,可以加入axis参数,
    # axis=0表示对行进行操作,axis=1表示对列进行操作
    >>>np.sum(a,axis=1)
    array([ 2.24728181,  2.21984112])

    另一些常用方法

    argmin()    #寻找数组中最小值的索引,支持axis参数
    argmax() #寻找数组中最大值的索引,支持axis参数
    mean()       #求平均值
    average() #也是求平均值
    median()     #求中位数. [1,4,5,6]中位数是4.5,平均值是4
    cumsum()   #累加,[1,2,3,4]结果为[1,3,6,10]
    diff()           #类似累差,如[1,4,5,6]结果为[3,1,1]
    nonezero   # 返回非零元素的坐标
    sort()        #排序,同样也支持axis
    transpose() #转置,array.T也可以达到相同的效果
    clip(array,array_min,array_max)  #将矩阵中比array_min小的元素变成array_min,将矩阵中比array_max大的元素变成array_max
返回列表