为了账号安全,请及时绑定邮箱和手机立即绑定

Python人工智能常用库Numpy使用入门

难度初级
时长51分
学习人数
综合评分9.63
64人评价 查看评价
9.7 内容实用
9.5 简洁易懂
9.7 逻辑清晰
  • a = np.array([1,2,3]) #创建数组

    a.shape #查看大小

    查看全部
  • Array(数组)

    rank表示维数

    查看全部
  • 矩阵运算

    np.dot(a,b) ===相当于 a.dot(b)  a的行数等于b的列数

    np.sum(a) 对数组a中元素全部求和

    np.sum(a,axis=0) a中每一列元素求和

    np.sum(a,axis=1) a中没一行元素求和


    np.mean(a)     a中所有元素平均值

    np.mean(a,axis=0) 

    np.mean(a,asix=1) 同上


    np.random.uniform(3,4) 生成3-4之间的随机小数

    tile 

    np.tile(a,(1,2)) 将a以块的形式进行 1行2列组合


    argsort 对数字当中元素进行排列后的序号 从0开始进行编号

    np.argsort(axis=0) 列排序 axis=1 行排序


    转置 

    a.T ====相当于 np.transpose(a)


    查看全部
  • 广播

    ##a = np.array() 创建一个4行3列的数组 

        b = np.array() 创建一个1行3列的数组

        当要b加遍每一行 

    1、方法1 循环

        for i in range(4) :

            a[i,:] += b            #但是python中使用循环计算会很慢

    2、法2 

    a + np.tile(b,(4,1))      #将b以块为单位构造数组后再与a相加

    3、numpy的 广播特性

    直接a+b


    查看全部
  • np.add(a,b) 相当于 a+b

    np.subtract(a,b)相当于a-b

    np.multiply(a,b) 相当于 a*b 对应位置相乘

    np.divide(a,b) 相当于 a/b 对应位置相除

    np.sqrt(a) 元素开方

    以上仅仅是对应元素的(相同数组大小下)运算操作


    矩阵运算

    a.dot(b) a矩阵乘b  相当于 np.dot(a,b)  a的行数等于b的列数 

    np.sum(a) 数组所有元素求和

    np.sum(a,axis=0) 每一列求和

    np.sum(a,axis=1) 每一行求和

    np.mean(a) a中所有元素的平均值 

    同sum

    np.mean(a,axis=0) 每列均值

    np.mean(a,axis=1) 每行均值

    np.random.uniform(3,4)  产生3-4之间的随机数

    tile 

    np.tile(a,(1,2)) 讲数组a 进行 块状重复 一行两列 [a,a]

    argsort

    a. argsort() 得到数组中每行元素 从小到大排序的 序数下标 

    同样可以运用axis=0 或者1 来进行行列的排序

    矩阵转置 

    a.T 对a进行转置 ==相当于 np.transpose(a)


    查看全部
  • a.dtype 函数判断数组a当中是什么数据类型

    a=np.array([1.1,2.6],dtype=np.int64 ) 指定a数组当中元素的数据类型为int


    查看全部
  • 索引数组 行与行、 列与列之间加冒号形成索引范围,

    不加则为单行或者单列 行列中间用,隔开 这种情况维度会下降(可以用2:3的形式来防止维度下降)

    a.[np.arange(3),1] += 10

    a[[0,1,2],[1,1,1]]

    a.[np.arange(3),[1,1,1]]

    result_index = a>10 获得a当中元素大于十的判断结果矩阵

    a[result_index]  得到大于10的元素的并集 

    ====相当于a[a>10]

    查看全部
  • import numpy as np 把numpy 简化成np

    原本 a=numpy.array () 变成 a=np.array()

    array()用于创建数组

    reshape((n,-1)) 函数中 -1代表3 

    shape 获取数组的行列大小信息 先行后列

    zeros 创建元素全为0的数组

    ones 同理

    可以用full 实现上述的函数 a = np.full ((3,3),0)

    eye 用于创建单位矩阵

    random.random 创建元素0-1随机数组


    查看全部
  • Array (数组)

    rank

    In [1]:

    import numpy as np
    a=np.array([1,2,3])

    In [2]:

    a

    Out[2]:

    array([1, 2, 3])

    In [3]:

    type(a)

    Out[3]:

    numpy.ndarray

    In [4]:

    a.shape #没有表明是行向量还是列向量,只是表明有三个元素

    Out[4]:

    (3,)

    In [5]:

    a=a.reshape(1,-1)  #-1代表3,即reshape函数将a设置为一行三列的数组

    In [6]:

    a.shape       #a是一行三列的数组

    Out[6]:

    (1, 3)

    In [7]:

    a=np.array([1,2,3,4,5,6])
    a.shape    #显示结果为6,说明有6个元素

    Out[7]:

    (6,)

    In [8]:

    a=a.reshape((2,-1))   #将a设置为2行3列的数组
    a.shape

    Out[8]:

    (2, 3)

    In [9]:

    a

    Out[9]:

    array([[1, 2, 3],
           [4, 5, 6]])

    In [10]:

    a=a.reshape((-1,2))   #将a转换成3行2列的数组,所以-1可以放在任何位置
    a.shape

    Out[10]:

    (3, 2)

    In [11]:

    a

    Out[11]:

    array([[1, 2],
           [3, 4],
           [5, 6]])

    In [12]:

    a[2,0]=55    #将5(第3行1列,从0开始,所以是2,0)改为55
    a

    Out[12]:

    array([[ 1,  2],
           [ 3,  4],
           [55,  6]])

    zeros 元素全是0的矩阵 ones 元素全是1的矩阵

    In [13]:

    a=np.zeros((3,2))    #3行2列的0矩阵
    b=np.ones((3,2))     #3行2列的1矩阵
    print(a,'\n',b)
    [[0. 0.]
     [0. 0.]
     [0. 0.]] 
     [[1. 1.]
     [1. 1.]
     [1. 1.]]

    full函数

    In [14]:

    a=np.full((2,2),0)   #2行2列的元素为0的矩阵
    b=np.full((2,1),1)    #2行1列的元素为1的矩阵
    c=np.full((3,4),3)    #3行4列的元素为3的矩阵
    print('a=',a,'\n','b=',b,'\n','c=',c)
    a= [[0 0]
     [0 0]] 
     b= [[1]
     [1]] 
     c= [[3 3 3 3]
     [3 3 3 3]
     [3 3 3 3]]

    eye函数 创建单位矩阵

    In [15]:

    a=np.eye(3)
    a

    Out[15]:

    array([[1., 0., 0.],
           [0., 1., 0.],
           [0., 0., 1.]])

    random.random 随机创建一个n*m个元素为0~1的矩阵

    In [16]:

    a=np.random.random((3,4))
    a

    Out[16]:

    array([[0.41649546, 0.78422125, 0.40328815, 0.89947211],
           [0.37932431, 0.34892845, 0.04160069, 0.77451545],
           [0.14348274, 0.84981272, 0.67884397, 0.52761756]])

    indexing 数组索引

    In [17]:

    a=np.array([[1,2,3,4],              #第0行or倒数第-3行
                [5,6,7,8],              #第1行or倒数第-2行
                [9,10,11,12]])          #第2行or倒数第-1行
    a[-3:,1:3]

    Out[17]:

    array([[ 2,  3],
           [ 6,  7],
           [10, 11]])

    In [18]:

    a[1,-2]  #取第2行倒数第二个数

    Out[18]:

    7

    arange

    In [19]:

    a[np.arange(2),1]+=10   #在前2行的第1列的两个元素加10
    a

    Out[19]:

    array([[ 1, 12,  3,  4],
           [ 5, 16,  7,  8],
           [ 9, 10, 11, 12]])

    In [20]:

    np.arange(3,7)   #3~6产生指定范围的数组

    Out[20]:

    array([3, 4, 5, 6])

    In [21]:

    result_index=a>10         #a中的元素大于10的为True,其余为False
    result_index

    Out[21]:

    array([[False,  True, False, False],
           [False,  True, False, False],
           [False, False,  True,  True]])

    In [22]:

    a[a>10]    #显示出a中大于10的元素

    Out[22]:

    array([12, 16, 11, 12])

    元素的数据类型

    In [23]:

    a=np.array([1,2])
    a.dtype

    Out[23]:

    dtype('int32')

    In [24]:

    a=np.array([1.2,3])  #当有整数和小数时,默认都为小数
    a.dtype

    Out[24]:

    dtype('float64')

    In [25]:

    a=np.array([1.1,2.6],dtype=np.int64) #将小数转换成整数类型
    a

    Out[25]:

    array([1, 2], dtype=int64)

    数学运算与常用函数

    In [26]:

    a=np.array([[1,2],
               [3,4]])
    b=np.array([[5,6],
               [7,8]])
    a+b

    Out[26]:

    array([[ 6,  8],
           [10, 12]])

    In [27]:

    np.add(a,b)

    Out[27]:

    array([[ 6,  8],
           [10, 12]])

    In [28]:

    np.subtract(a,b)    #或写为a-b

    Out[28]:

    array([[-4, -4],
           [-4, -4]])

    In [29]:

    np.multiply(a,b)    #或写为a*b

    Out[29]:

    array([[ 5, 12],
           [21, 32]])

    In [30]:

    np.divide(a,b)     #或写为a/b

    Out[30]:

    array([[0.2       , 0.33333333],
           [0.42857143, 0.5       ]])

    开方

    In [31]:

    np.sqrt(a)

    Out[31]:

    array([[1.        , 1.41421356],
           [1.73205081, 2.        ]])

    In [32]:

    a=np.array([[1,2],[3,4]])
    b=np.array([[1,2,3],[4,5,6]])
    a.dot(b)  #a*b,或写为np.dot(a,b)

    Out[32]:

    array([[ 9, 12, 15],
           [19, 26, 33]])

    常用函数

    In [33]:

    a

    Out[33]:

    array([[1, 2],
           [3, 4]])

    In [34]:

    np.sum(a)    #对a内的元素求和

    Out[34]:

    10

    In [35]:

    np.sum(a,axis=0)  #axis为0时对列操作,每一列的元素相加

    Out[35]:

    array([4, 6])

    In [36]:

    np.sum(a,axis=1)  #axis为1时对行操作,每一行的元素相加

    Out[36]:

    array([3, 7])

    mean函数:求平均值

    In [37]:

    np.mean(a)   #a中所有元素和的平均值

    Out[37]:

    2.5

    In [38]:

    np.mean(a,axis=0) #a中每列和的平均值

    Out[38]:

    array([2., 3.])

    uniform函数:在制定区间随机产生一个小数

    In [39]:

    np.random.uniform(3,4)

    Out[39]:

    3.3895012763982115

    tile函数:重复指定的次数

    In [40]:

    a

    Out[40]:

    array([[1, 2],
           [3, 4]])

    In [41]:

    np.tile(a,(1,3))  #行不重复,列元素重复三次

    Out[41]:

    array([[1, 2, 1, 2, 1, 2],
           [3, 4, 3, 4, 3, 4]])

    argsort函数:对每行元素排序

    In [42]:

    a=np.array([[3,6,4,11],[5,11,2,3]])  #从小到大排序,从0开始
    a.argsort()

    Out[42]:

    array([[0, 2, 1, 3],
           [2, 3, 0, 1]], dtype=int64)

    In [43]:

    a.argsort(axis=0)   #对每列元素从小到大排序,从0开始

    Out[43]:

    array([[0, 0, 1, 1],
           [1, 1, 0, 0]], dtype=int64)

    矩阵转置

    In [44]:

    a

    Out[44]:

    array([[ 3,  6,  4, 11],
           [ 5, 11,  2,  3]])

    In [45]:

    a.T  #或者 np.transpose(a)

    Out[45]:

    array([[ 3,  5],
           [ 6, 11],
           [ 4,  2],
           [11,  3]])

    广播

    In [46]:

    a=np.array([[1,2,3],[4,5,6],[7,8,9]])
    b=np.array([2,3,4])
    for i in range(3):
        a[i,:] += b      #让a的每一行加b
    a

    Out[46]:

    array([[ 3,  5,  7],
           [ 6,  8, 10],
           [ 9, 11, 13]])

    In [47]:

    #如果a是一个很大的数组,python需要经过大量的循环,耗时多,
    #所以可以用tile函数,使b重复
    a + np.tile(b,(3,1))   #因为a是3行,所以b重复3次行

    Out[47]:

    array([[ 5,  8, 11],
           [ 8, 11, 14],
           [11, 14, 17]])

    In [48]:


    a+b     #numpy有广播的功能,将两个数组转化为相同的维度 进行运算

    Out[48]:

    array([[ 5,  8, 11],
           [ 8, 11, 14],
           [11, 14, 17]])


    查看全部
  • 2
    查看全部
    0 采集 收起 来源:课程整体介绍

    2018-07-15

  • shape

    reshape

    ones

    full

    eye

    random.random

    查看全部
  • result_index = a>10,对数组a中的所有数据进行判断,返回True和False

    a[result_index],返回的值就是所有满足条件的值

    查看全部
  • a[np.arange(3),1] += 10,地[1]列的没个数都+10

    查看全部
  • a = np.eye(3),用于创建单位矩阵

    查看全部
  • reshape

    full

    eye

    random.random

    查看全部

举报

0/150
提交
取消
课程须知
具备一定的python语法基础最好
老师告诉你能学到什么?
anaconda安装,jupyter notebook使用简单教程,numpy使用教程。numpy简单教程-数组,索引操作,元素数据类型,数组运算与常用函数,广播

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!