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

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

难度初级
时长51分
学习人数
综合评分9.63
64人评价 查看评价
9.7 内容实用
9.5 简洁易懂
9.7 逻辑清晰
  • shift+enter 执行

    esc+m 添加笔记

    #+空格 标题

    *+空格 点

    查看全部
  • 1.a = np.array([1,2])    # 元素均为整数,识别为int

    a = np.array([1.1,2.2])      # 元素均为小数,识别为float

    a = np.array([1,2.2])      # 元素有小数也有整数,识别为float

    a = np.array([1.1,2.6], dtype=np.int64)     # 本来元素是小数,设置类型为int,会自动把小数点后面的数字去掉


    查看全部
  • rank:数组维数

    reshape((x,y)):x->行,y->列,-1->占位符

    np.zeros((x,y)):创建x行y列元素为0的数组

    np.ones((x,y))

    np.full((x,y),z):创建x行y列数组,所有元素都为z

    np.eye(n):n维单位矩阵

    random.random((x,y)):创建0-1的随机数组

    查看全部
  • shift+enter 执行代码 esc+m 文本形式 #+空格 一级标题 ##+空格 二级标题 。。。 * 加点标
    查看全部
  • 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]])


    查看全部
  • shape

    reshape

    ones

    full

    eye

    random.random

    查看全部
  • #indexing

    a = np.array([1,2,3]

                         [4,5,6]

                         [7,8,9])

    a [-2:, 1:-1]

    查看全部
  • #Array(数组,阵列)         rank

    import numpy as np

    np.array(列表)

    a = a.shape(元组)          维度:xx行xx列

    a = a.reshape(元组)

    a = np.zeros(元组)

    a = np.ones(元组)

    a = np.full(元组,数组中的值)

    a = np.eys(元组,数组中的值)

    查看全部
  • Array(数组) rank 数组维数 import numpy as np //引入numpy a = np.array([1,2,3]) //定义并初始化数组a type(a) //查看a的类型 a.shape //查看a的大小 a=a.reshape((1,-1)) //第一个1是只有一行,-1是一个占位符 a = np.zeros((3,3)) //创建行列都是3的元素全为0数组 a = np.ones((2,3)) //创建行是2列是3的元素全为1数组 a = np.full((3,3),0) //创建行列都是3的元素全为0数组 eye(创建单位矩阵) a = np.eye(3) reshape(1,-1) 这个函数中"-1"表示占位符,根据实际数组自动计算出来
    查看全部
  • Array(数组) rank 数组维数 import numpy as np //引入numpy a = np.array([1,2,3]) //定义并初始化数组a type(a) //查看a的类型 a.shape //查看a的大小 a=a.reshape((1,-1)) //第一个1是只有一行,-1是一个占位符 a = np.zeros((3,3)) //创建行列都是3的元素全为0数组 a = np.ones((2,3)) //创建行是2列是3的元素全为1数组 a = np.full((3,3),0) //创建行列都是3的元素全为0数组 eye(创建单位矩阵) a = np.eye(3)
    查看全部
  • 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 np.sqrt(a) 矩阵相乘 a.dot(b)或 np.dot(a,b)
    查看全部
  • a的每一行与b相加

    1. 对a数组进行循环(循环耗性能)

    2. 使用tile重复函数

    3. 直接相加(内部有广播处理机制,在缺失维度进行)

    查看全部
  • 同维度数组的加减乘除

    加:a+b或者np.add(a,b)

    减:a-b或者 np.subtract(a,b)

    乘:a*b或者np.multiply(a,b)

    除:a/b或者 np.divide(a,b)

    数组开方:np.sqrt(a)

    矩阵乘法(a列数=b行数才可进行):a.dot(b)或者np.dot(a,b)

    sum求和函数

    np.sum(a)

    np.sum(a,axis=0)(aixs=0代表每列,axis=1代表每行)

    mean平均值函数

    np.mean(a,axis=1)

    uniform指定范围的随机数

    np.random.uniform(2,99)

    tile数组重复函数

    np.tile(a,(2,3))(列重复次数与行重复次数)

    argsort数组行列排序函数

    a.argsort()(每行排序,返回的是数组下标)

    a.argsort(axis = 0) (每列排序)

    矩阵转置

    a.T或者np.transport(a)


    查看全部
  • 索引的第二种方法,使用arange函数

    np.arange(3)(相当于从0到3,不包括3)——> array([0,1,2])

    np.nrange(3,7——> array([3,4,5,6])


    #第二列元素+10的3种写法

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

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

    a[[0,1,2],[1,1,1]] +=10

    #获取数组中大于10的元素

    result_index = a >10

    a[result_index]


    查看全部
  • array的索引操作:

    正数时是从0开始

    倒数时是从-1开始

    范围是2:4时是不包括4的

    当我们在一个维度使用一个整数来索引时,维度就会减一

    对a进行 b = a[2:3,1:3]的操作,可以得到 array([[10,11]]) ,仍是二维数组






    查看全部
首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

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

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