Python数据分析-----numpy总结

numpy常用方法

 一、numpy简介:numpy是Python数值计算中最为重要的基础包,能对矩阵中的所有数据进行快速的矩阵运算,且无需编写循环,因此可以在很大程度上减少计算时间成本。另外,因为numpy的算法库是用C语言写的,所以numpy数组使用的内存量也小于其它Python内荐序列。

二、基本功能

  1. genfromtxt(args):用于打开txt文档,读出的结果均是矩阵的格式。
  2. array:通过numpy.array(...)来构造对象;构建向量:numpy.array([1, 2, 3]);构建矩阵:numpy.array([[1, 2, 3], [4, 5, 6]]) 
    import numpy as np 
    
    a = np.array([1,2,3])
    
    a2 = np.array([[1,2,3],[4,5,6]])
    

    array常用操作:

  3.  判断:vector = numpy.array([5, 10, 15, 20])  当操作vector == 10时,返回的结果是[false, true, false, false],array会将每个元素与该值比较的结果返回出来。
  4. 索引:s = (vector == 10) vector[s]此时会返回[10],所以说s会将true对应的值返回出来,相当于索引。
  5. 转换:array.astype()方法,可以对array中的数据进行类型转换。
  6. 最小值:array.min() 按行/列求和
    import numpy as np
    
    a = np.array([[1,2,3],[4,5,6]])
    print(a.max())              # 获取整个矩阵的最大值 结果: 6
    print(a.min())              # 结果:1
    
    
    print(a.max(axis=0))
    结果:
    [4 5 6]
    
    print(a.max(axis=1))
    结果:
    [3 6]
    
    print(a.argmax(axis=1))
    结果:
    [2 2]
    

  7. 初始化:numpy.zeros((3, 4)):表示生成三行四列的矩阵,但是数值都是0。     numpy.ones((3, 4)):表示生成三行四列的矩阵,但是数值都是1。numpy.ones((3, 4), detype = numpy.int32):表示生成三行四列的矩阵,但是数值都是1并设置了相应的类型。
  8. 运算操作:两个想同维度的array相减,实际上是对应位置上的元素相减,如果对一个array进行整体的加减乘除,例如array + 1、array * 2实际上是对每个元素进行相同的操作。
  9. 内积操作:arrayA * arrayB,对应位置进行相乘。
    import numpy as np
    a1 = np.array([[1,2,3],[4,5,6]])        
    a2 = np.array([[1,2],[3,4],[5,6]])     
    
    print(a1.shape[1]==a2.shape[0])         
    print(a1.dot(a2)) 
    
    结果:
    [[22 28]
     [49 64]]
    

  10. 矩阵乘法操作:arrayA.dot(arrayB)或者  numpy.dot(arrayA, arrayB)
  11. 将矩阵转换成向量的形式:array.ravel()
  12. 设置矩阵的shape:array.shape = (n, m)
  13. 转置:array.T
    import numpy as np
    a = np.array([[1,2,3],[4,5,6]])
    print(a.transpose())
    
    结果:
    [[1 4]
     [2 5]
     [3 6]]
    
    
    a = np.array([[1,2,3],[4,5,6]])
    print(a.T)
    
    结果:
    [[1 4]
     [2 5]
     [3 6]]
    

  14. 浅复制:array.view()
  15. 深复制:array.copy()
  16. 返回每列/行最大值的索引:array.argmax(axis=0/1)表示找出每列/行中最大元素的索引。
  17. 将array进行多份复制

三、通过函数创建矩阵

  1. numpy.arange()
    import numpy as np
    
    a = np.arange(5)       # 默认从0开始到5(不包括5),步长为1
    print(a)                # 返回 [0 1 2 3 4 5 ]
    
    a1 = np.arange(1,10)    # 从1开始到10(不包括10),步长为1
    print(a1)               # 返回 [1 2 3 4 5 6 7 8 9]
    
    a2 = np.arange(1,10,2)  # 从1开始到10(不包括10),步长为2
    print(a2)               # 返回 [ 1  3  5 7 9]
    



  2. numpy.linspace(n, m, z):表示在n到m之间,平均生成z个元素。

    import numpy as np
    a = np.linspace(0,10,7) 
    print(a) 
    结果: 
    [  0.           1.66666667   3.33333333   5.         6.66666667  8.33333333  10.        ]
    


     

  3. numpy.random.random(n, m):生成一个n行m列的矩阵,每个矩阵的元素的值是一个在正负1之间的随机值。

  4. numpy.exp(array):该方法返回的是以array中每个元素为幂,e为底的矩阵。

你可能感兴趣的:(python,python,算法,机器学习)