zoukankan      html  css  js  c++  java
  • Numpy简介

    Numpy

      NumPy系统是Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

     Numpy常用操作

    创建数组

    创建1维数组:

    data = np.array([1,3,4,8])  

     查看数组维度

    data.shape
    

     查看数组类型

    data.dtype
    

     通过索引获取或修改数组元素

    data[1]  获取元素
    data[1] = 'a' 修改元素  

     创建二维数组

    1.data = np.array([[1,2,3],[4,5,6]])   两个元素均为列表
    2.data = np.arange(10) 与python的range一样,range返回列表,arange返回array类型的一个数组
    3.data2 = data.reshape(2,5) 返回一个2*5的数组,他不是拷贝数组是引用,只是返回数组的不同视图,data改变data2也会改变

     创建特殊数组 

    data = np.zeros((2,2))  创建2*2全为0的2维数组
    data = np.ones((2,3,3,))  创建全为1的三维数组
    data = np.eye(4)   创建4*4的对角数组,对角元素为1,其它都为0
    

     数组转换

    data = np.arange(16).reshape(4,4)   将0-16的移位数组转换为4*4的数组  

    数组索引

    data = np.arrange(100,step=10)  先创建一个步长为10的数组
    

     一维数组范围访问

    data[2:5]   访问第2-4之间的元素
    data[:3]   访问0-2之间的元素
    data[5:] = -1  将5-最后一个元素统一赋值为-1
    

     二维或高维数组

    data = np.arrary(16).reshape(4,4)
    

     访问元素

    data[1] 返回array第一行元素
    data[1:3]   返回第一行到第三行元素
    data[:,2:4]   返回所有行的第二到第四列元素
    data[1:3,2:4]     返回第1到第二行且列数为2-4之间的元素
    data[[1,3],[2,3]]   返回第一行第二列元素与第三行第三列元素(=data[1,2],data[3,3])
    

     布尔索引

    data>10   数组中每个元素与10比较返回布尔值组成的数组
    idx = data>10  获得布尔数组
    data[idx]   获取大于10的数组
    data[data>10]  获取data数组里面大于10的元素构成的新数组  
    data[data%2==0]   获取data里面所有偶数元素构成的新数组
    

     数学运算

     

    x = np.arange(1,5).reshape(2,2)
    y = np.arange(5,9).reshape(2,2)
    z = x+y 或np.add(x,y)   数组中对应位置元素相加,减法同理
    c = x*y   数组中对应位置元素相乘
    h = x.dot(y)   矩阵内积
    q = x/y   数组对应位置相除
    n = np.sqrt(x)   平方根
    x.T   转置矩阵
    np.linspace(1,10,num=200)  指定在数轴上起始位置与均分,num表示均分份数
       
    

      

     

     

     

     

     

  • 相关阅读:
    Codeforces 992C(数学)
    Codeforces 990C (思维)
    Codeforces 989C (构造)
    POJ 1511 Invitation Cards(链式前向星,dij,反向建边)
    Codeforces 1335E2 Three Blocks Palindrome (hard version)(暴力)
    POJ 3273 Monthly Expense(二分)
    POJ 2566 Bound Found(尺取前缀和)
    POJ 1321 棋盘问题(dfs)
    HDU 1506 Largest Rectangle in a Histogram(单调栈)
    POJ 2823 Sliding Window(单调队列)
  • 原文地址:https://www.cnblogs.com/chenice/p/7182628.html
Copyright © 2011-2022 走看看