zoukankan      html  css  js  c++  java
  • numpy入门总结1

    1. numpy&pandas在数据处理的时候,速度远远快于python。因为numpy&pandas底层是C语言直接写的。

      pandas是numpy的升级版本

      他们都应用到了矩阵的运算

    2.numpy的基本属性:
      2.1 numpy是基于矩阵的运算
        矩阵:基于1维或者2维的一个数组
        举例:[[1,2,3],
           [2,3,4]]
        这是一个列表,想要转换成numpy能够识别的矩阵

      2.2 numpy.array(列表) ——>将列表转换成了矩阵
        举例:
          array = numpy.array([[1,2,3],
                   [2,3,4]])

      2.3 numpy 矩阵的属性:
        2.3.1:   .ndim——几维的矩阵(1or2维)
              eg: array.ndim
        2.3.2 :  .shape——矩阵的形状——几行几列
        2.3.3:   .size——总共有多少个元素

      2.4 numpy中如何创建各种各样的矩阵和数组?
        2.4.1 np.array(list, dtype = ....)
            eg:  np.array([2,23,4],dtype=int)
              np.array([[1,2,3],
                  [2,3,4]])

        2.4.2 np.zeros((行数,列数))——输出全部为0的矩阵
            eg: np.zeros((3,4))

        2.4.3 np.ones((行数,列数), dtype = ....)——输出全部为1的矩阵
            eg: np.ones((3,4),dtype = np.int32)

        2.4.4 np.empty((行数,列数))

            结果返回一个矩阵,数值型元素,全部是随机数;Object类型元素是None

            好处是,生成矩阵的速度最快;但是,貌似没什么用。

        2.4.5 np.arrange(起始值,终止值,步长)

            numpy中的类似range()的方法

        2.4.6 .reshape((行数,列数))

        2.4.7 np.linspace(起始值,终止值,几段)

            把一个连续的区间,分成几等分的几段。


    3. numpy的基础运算:
        3.1 矩阵的加减法:+、-

        

        3.2 几次方,幂的形式:**

          eg : a ** 3

          ——矩阵中每个元素都进行幂函数运算

        

        3.3 三角函数:
          eg:  np. sin(A)——矩阵A中的每个元素进行sin运算,输出结果组成一个矩阵
              np.cos(A)
                                   np.tan(A)

        

        3.4 矩阵中的每个元素大于或者小于某个数:
          eg: A = np.array([[1,2,3],
                    [4,5,6])

            B = A < 3
            B = A == 3
            B = A > 3

        3.5 矩阵乘法:
          3.5.1 *: 矩阵中的每个元素,相应位置元素对应相乘
            eg : A * B

          3.5.2 np.dot(矩阵A,矩阵B)——矩阵的乘法:A x B
              eg: np.dot(A, B)

          3.5.3 矩阵A.dot(矩阵B)——同3.5.2
              eg: A.dot(B)


        3.6 生成一个随机数(0-1)的矩阵:
            np.random.random((行数,列数))
            ————第1个random是random模块,第二个random是方法:生成0-1之间的随机数

        

        3.7 np.sum(array)——整个array中元素求和

        3.8 np.min(array)——整个array中的最小值

      

        3.9 np.max(array)——整个array中的最大值

        3.10 在某一个维度上,求sum和最大最小
            np.sum(array,axis = ...)
            np.max(array, axis =...)
            np.min(array, axis =....)

          在某一个维度上,求sum和最大最小
          axis指定维度,axis = 0,是在每列上进行运算;axis = 1 是在每一行上进行运算


    4.numpy基础运算2:
        4.1 查找矩阵中,最小值的索引:
           np.argmin(矩阵)
            eg: np.argmin(A)

        4.2 最大值的索引:
           np.argmax(A)

        4.3 平均值:
          np.avr(A)
          或者
          A.mean()

        4.4 中位数
          np.median(A)

        4.5 累加和:
          np.cumsum(A)

        4.6 累差:
          np.diff(A)

        4.7 逐行进行排序:每一行内部从小到大进行排序

          np.sort(A)

        4.8 矩阵转置:
          np.transpose(A) 或者 A.T

      

        4.9 滤波:

          np.clip(A, a_min, a_max)
          a_min:令矩阵A中所有小于a_min的数字都变成a_min
          a_max:令矩阵A中所有大于a_max的数字都变成a_max

        4.10 np.mean(A, axis =0或1)
          对每一行或者每一列进行求平均值
          axis =0 ——列
          axis =1——行


    5. numpy的索引:
        5.1 矩阵的第三行第2列:
          (1)方式1:A[2][1]
          (2)方式2:A[2,1]

        5.2 for循环迭代:
          5.2.1 for循环迭代行:
            for row in A:
              print(A)
            ——这样打印出来的就是矩阵中的每一行
          5.2.2 for循环迭代列:使用转置
            for column in A.T:
              print(column)

          5.2.3 for循环迭代项目item:使用flat——将多维数组,拉平变成一个一维数组
              for item in A.flat:
                print(item)


              A.flatten(),返回一个将矩阵变成一整个数组
              A.flat()返回一个迭代器


    6.将numpy的array进行合并:
        6.1 上下合并:.vstack((arrayA,arrayB))

          eg:   A = np.array([1,1,1])
             B = np.array([2,2,2])
             np.vstack((A,B))

      

        6.2 左右合并:.hstack(arrayA,arrayB)
          eg: np.hstack(arrayA,arrayB)

         

        6.3 将横向数列变成纵向数列:
          [1,1,1] ——> [1,
                1,
                1]

          A[np.newaxis,:] ——在行上面加了一个维度
          A[:,np.newaxis] ——在列上面加了一个维度

          np.newaxis——增加一个维度

        6.4 np.concatenate()
            ——可以定义在哪个维度进行合并
            np.concatenate((A,B,B,A), axis =0)
            axis =0 纵向合并
            axis =1 横向合并

  • 相关阅读:
    计算机组成原理:“性能”是什么?
    试题 基础练习 Huffuman树
    最小堆的插入删除函数
    特殊函数
    进程控制
    进程的描述
    进程管理
    生成和配置Linux操作系统
    系统调用
    Shell脚本编程
  • 原文地址:https://www.cnblogs.com/tommyngx/p/10183900.html
Copyright © 2011-2022 走看看