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 横向合并

 

posted @ 2018-12-27 11:14  Loser_King  阅读(433)  评论(0编辑  收藏  举报