美文网首页
Numpy学习笔记1

Numpy学习笔记1

作者: 山雾幻华 | 来源:发表于2019-04-20 21:41 被阅读0次

    导入Numpy

    import numpy as np
    

    基本操作

    array = np.array([[1.1, 2, 3],
                      [2.1, 3, 4]], dtype=np.int64)
    print(array)
    print('维数:', array.ndim)
    print('形状:', array.shape)
    print('大小:', array.size)
    print('类型:', array.dtype)
    
    [[1 2 3]
     [2 3 4]]
    维数: 2
    形状: (2, 3)
    大小: 6
    类型: int64
    
    np.zeros((3,4))
    
    array([[0., 0., 0., 0.],
           [0., 0., 0., 0.],
           [0., 0., 0., 0.]])
    
    np.ones((3,4))
    
    array([[1., 1., 1., 1.],
           [1., 1., 1., 1.],
           [1., 1., 1., 1.]])
    
    np.empty((3,4))
    
    array([[1., 1., 1., 1.],
           [1., 1., 1., 1.],
           [1., 1., 1., 1.]])
    
    np.arange(10, 34, 2).reshape((3,4))
    
    array([[10, 12, 14, 16],
           [18, 20, 22, 24],
           [26, 28, 30, 32]])
    
    np.linspace(1,10,5)
    
    array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ])
    

    运算

    a = np.array([10,20,30,40])
    b = np.array(4)
    print('a:',a)
    print('b:',b)
    print('a+b:',a+b)
    print('a-b:',a-b)
    print('b的平方:',b**2)
    print('10*sin(a):',10*np.sin(a))#弧度值
    print('b<3:',b<3)
    
    c = np.array([[1,1],
                  [0,1]])
    d = np.arange(4).reshape((2,2))
    print('c:',c)
    print('d:',d)
    print('逐个相乘:',c*d)#逐个相乘
    print('矩阵乘法1:',np.dot(c,d))#矩阵乘法
    print('矩阵乘法0:',c.dot(d))#矩阵乘法
    
    a: [10 20 30 40]
    b: 4
    a+b: [14 24 34 44]
    a-b: [ 6 16 26 36]
    b的平方: 16
    10*sin(a): [-5.44021111  9.12945251 -9.88031624  7.4511316 ]
    b<3: False
    c: [[1 1]
     [0 1]]
    d: [[0 1]
     [2 3]]
    逐个相乘: [[0 1]
     [0 3]]
    矩阵乘法1: [[2 4]
     [2 3]]
    矩阵乘法0: [[2 4]
     [2 3]]
    
    a = np.random.random((2,4))
    print('a:',a)
    print('a求和:',np.sum(a))
    print('a行求和:',np.sum(a,axis=1))#axis=1行求和,axis=0列求和
    print('a的最小值:',np.min(a,axis=0))
    print('a的最大值:',np.max(a))
    
    a: [[0.61961317 0.95169263 0.49257206 0.79382656]
     [0.47724052 0.11682015 0.7192092  0.25277084]]
    a求和: 4.423745121801128
    a行求和: [2.85770442 1.56604071]
    a的最小值: [0.47724052 0.11682015 0.49257206 0.25277084]
    a的最大值: 0.9516926282917142
    
    A = np.arange(2,14).reshape((3,4))
    print('A:',A)
    print('最小值索引:',np.argmin(A))
    print('最大值索引:',np.argmax(A))
    print('平均值1:',np.mean(A))
    print('平均值2:',A.mean())
    print('中位数:',np.median(A))
    print('累加',np.cumsum(A))
    print('和上一个的差',np.diff(A))
    print('不是0的数',np.nonzero(A))#输出一个元组,行,列
    print('排序',np.sort(A))
    print('转置1:',np.transpose(A))
    print('转置2:',A.T)
    print('小于5的数为5,大于9的为9',np.clip(A,5,9))
    
    A: [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    最小值索引: 0
    最大值索引: 11
    平均值1: 7.5
    平均值2: 7.5
    中位数: 7.5
    累加 [ 2  5  9 14 20 27 35 44 54 65 77 90]
    和上一个的差 [[1 1 1]
     [1 1 1]
     [1 1 1]]
    不是0的数 (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
    排序 [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    转置1: [[ 2  6 10]
     [ 3  7 11]
     [ 4  8 12]
     [ 5  9 13]]
    转置2: [[ 2  6 10]
     [ 3  7 11]
     [ 4  8 12]
     [ 5  9 13]]
    小于5的数为5,大于9的为9 [[5 5 5 5]
     [6 7 8 9]
     [9 9 9 9]]
    

    索引

    A = np.arange(3,15)
    print('A:',A)
    print(A[3])
    A = A.reshape(3,4)
    print('A:',A)
    print('A[2]',A[2])
    print('A[1][1]',A[1][1])
    print('A[1,1]',A[1,1])
    print('A[2,:]',A[2,:])
    for row in A:
        print('row',row)
        
    for column in A.T:
        print('column',column)
        
    for item in A.flat:
        print('item',item)
    
    A: [ 3  4  5  6  7  8  9 10 11 12 13 14]
    6
    A: [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    A[2] [11 12 13 14]
    A[1][1] 8
    A[1,1] 8
    A[2,:] [11 12 13 14]
    row [3 4 5 6]
    row [ 7  8  9 10]
    row [11 12 13 14]
    column [ 3  7 11]
    column [ 4  8 12]
    column [ 5  9 13]
    column [ 6 10 14]
    item 3
    item 4
    item 5
    item 6
    item 7
    item 8
    item 9
    item 10
    item 11
    item 12
    item 13
    item 14
    

    合并

    A = np.array([1,1,1])
    B = np.array([2,2,2])
    print('列合并',np.vstack((A,B)))
    print('行合并',np.hstack((A,B)))
    print('增加一个维度',A[np.newaxis,:])
    print('多合并',np.concatenate((A,B,B,A),axis=0))
    
    列合并 [[1 1 1]
     [2 2 2]]
    行合并 [1 1 1 2 2 2]
    增加一个维度 [[1 1 1]]
    多合并 [1 1 1 2 2 2 2 2 2 1 1 1]
    

    分隔

    A = np.arange(12).reshape(3,4)
    print("A",A)
    print('横向分隔',np.split(A,2,axis=1))
    print('横向不等分隔',np.array_split(A,3,axis=1))
    print('横向分隔',np.vsplit(A,3))
    print('纵向分隔',np.hsplit(A,2))
    
    A [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    横向分隔 [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2,  3],
           [ 6,  7],
           [10, 11]])]
    横向不等分隔 [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2],
           [ 6],
           [10]]), array([[ 3],
           [ 7],
           [11]])]
    横向分隔 [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
    纵向分隔 [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2,  3],
           [ 6,  7],
           [10, 11]])]
    

    浅拷贝深拷贝

    a = np.arange(4)
    b = a
    c = a
    d = b
    a[0] = 11
    print(b is a ,c is a,d is a)
    
    True True True
    
    b = a.copy()
    a[3] = 44
    print(b,b is a)
    
    [11  1  2  3] False
    

    参考

    https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/

    相关文章

      网友评论

          本文标题:Numpy学习笔记1

          本文链接:https://www.haomeiwen.com/subject/yyfnwqtx.html