Numpy 内部解除了python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库。

1 篇文章 0 订阅
1 篇文章 0 订阅
  1. 数组元素个数
    import numpy as np
    #数组元素个数
    a = [1,2,3,4,5]
    b = np.array(a)
    b.size

    5

  2. 数组形状
    #数组形状
    b.shape
    

    (5,)

  3. #数组维度
    b.ndim
    

    1

  4. #数组元素类型
    b.dtype

    dtype('int32')

  5. #数组索引
    
    
    #定义一个随机整数0-99的4*4数组
    array1 = np.random.randint(0,100,(4,4))
    print(array1)
    #数组索引
    array1[0,1]
    
    

    [[76 42 61 60]
    [85 62 59 35]
    [ 2 74 21 94]
    [16 88 78 40]]
    42

  6. #数组切片 [左闭右开)
    array1[1:3,2:4]
    
    

    array([[59, 35],
           [21, 94]])

  7. array2 = np.arange(0,10)
    print(array2)

    [0 1 2 3 4 5 6 7 8 9]

  8. #将数组反转
    array2[::-1]

    array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

     

  9. #通过两个::进行切片
    print(array2[::2])
    print(array2[::-2])

    [0 2 4 6 8]
    [9 7 5 3 1]

  10. #变形使用 reshape 函数,参数用tuple
    import numpy as np
    array3 = np.arange(0,10)
    print(array3)
    array3.shape
    

    [0 1 2 3 4 5 6 7 8 9]
     

    (10,)

  11. #使用reshape函数进行变形
    
    #将原数组变形为五行两列
    array3.reshape((5,2))
    
    

    array([[0, 1],
           [2, 3],
           [4, 5],
           [6, 7],
           [8, 9]])

  12. n1 = np.random.randint(0,100,(3,4,5))
    n1

    array([[[ 8, 49,  3, 74, 58],
            [12, 83,  4, 62, 75],
            [ 0, 44, 35, 56, 81],
            [24, 75,  4, 28, 32]],

           [[81, 69, 15, 21, 16],
            [81, 68, 23,  0, 50],
            [58, 65, 69, 56, 92],
            [64, 84, 24,  6, 97]],

           [[64, 62, 70, 11, 59],
            [49, 62, 17, 43, 27],
            [24, 41, 71, 15, 41],
            [31, 21, 51, 52, 88]]])

     

  13. n1.shape
    

    (3, 4, 5)

  14. n1.reshape(3*4*5)
    

    array([ 8, 49,  3, 74, 58, 12, 83,  4, 62, 75,  0, 44, 35, 56, 81, 24, 75,
            4, 28, 32, 81, 69, 15, 21, 16, 81, 68, 23,  0, 50, 58, 65, 69, 56,
           92, 64, 84, 24,  6, 97, 64, 62, 70, 11, 59, 49, 62, 17, 43, 27, 24,
           41, 71, 15, 41, 31, 21, 51, 52, 88])

     

  15. #使用负数直接转换成一维数组
    
    n1.reshape(-1)

    array([6, 4, 0, 5, 9, 6, 6, 5, 0, 2, 7, 1, 5, 5, 9, 0, 9, 7, 6, 5, 6, 2,
           9, 9, 1])

    array([ 8, 49,  3, 74, 58, 12, 83,  4, 62, 75,  0, 44, 35, 56, 81, 24, 75,
            4, 28, 32, 81, 69, 15, 21, 16, 81, 68, 23,  0, 50, 58, 65, 69, 56,
           92, 64, 84, 24,  6, 97, 64, 62, 70, 11, 59, 49, 62, 17, 43, 27, 24,
           41, 71, 15, 41, 31, 21, 51, 52, 88])

  16. #级联 np.concatenate()级联的方向  级联还指用来设计一对多关系
    '''
    1.级联的参数是列表,一定要加中括号或者小括号;
    2.维度必须相同;
    3.形状相符;
    4.@级联的方向默认值是shape这个tuple的第一个值所代表的维度方向;
    5.可通过axis参数改变级联的方向;
    '''
    n1 = np.random.randint(0,10,(5,5))
    

    array([[3, 9, 9, 7, 7],
           [6, 8, 3, 1, 7],
           [4, 9, 9, 4, 3],
           [7, 4, 8, 9, 4],
           [2, 5, 1, 8, 2]])

  17. #列级联
    np.concatenate((n1,n1),axis = 0)

    array([[3, 9, 9, 7, 7],
           [6, 8, 3, 1, 7],
           [4, 9, 9, 4, 3],
           [7, 4, 8, 9, 4],
           [2, 5, 1, 8, 2],
           [3, 9, 9, 7, 7],
           [6, 8, 3, 1, 7],
           [4, 9, 9, 4, 3],
           [7, 4, 8, 9, 4],
           [2, 5, 1, 8, 2]])

  18. #行列级联
    np.concatenate((n1,n1),axis = 1)

    array([[3, 9, 9, 7, 7, 3, 9, 9, 7, 7],
           [6, 8, 3, 1, 7, 6, 8, 3, 1, 7],
           [4, 9, 9, 4, 3, 4, 9, 9, 4, 3],
           [7, 4, 8, 9, 4, 7, 4, 8, 9, 4],
           [2, 5, 1, 8, 2, 2, 5, 1, 8, 2]])

  19. #np.hstack 与 np.vstack :水平级联与垂直级联,处理自己,进行维度的变更。
    n2 = np.random.randint(0,100,size = 10)
    print(n2)
    #vertical 垂直
    n3 = np.vstack(n2)
    print(n3.shape)
    n3
    
    

    [16 77 67 95 14 63 35 26 96 86]
    (10, 1)

    array([[16],
           [77],
           [67],
           [95],
           [14],
           [63],
           [35],
           [26],
           [96],
           [86]])

  20. #水平
    n4 = np.hstack(n3)
    n4
    
    

     

    array([16, 77, 67, 95, 14, 63, 35, 26, 96, 86])

     

  21. '''
    切分  与级联类似,常用函数:
    np.split
    np.vsplit
    np.hsplit
    
    '''
    
    n5 = np.random.randint(0,150,size = (5,7))
    n5
    

    array([[ 45, 132,  94,  92,  62,  76,  95],
           [ 51,   4, 117, 116, 148,  67,  78],
           [101,  76,  72,  77,   1,  61,  80],
           [ 92, 116,  38,  61,  88, 143,  67],
           [121,  22,  19,  35,  85,  10,  35]])

  22. #分别在1,3前切割{0,12,34}
    np.split(n5,(1,3))

    [array([[ 45, 132,  94,  92,  62,  76,  95]]),
    array([[ 51,   4, 117, 116, 148,  67,  78],
            [101,  76,  72,  77,   1,  61,  80]]),
    array([[ 92, 116,  38,  61,  88, 143,  67],
            [121,  22,  19,  35,  85,  10,  35]])]

  23. #水平切分
    np.split(n5,(1,3),axis = 1)
    

    [array([[ 45],
            [ 51],
            [101],
            [ 92],
            [121]]), array([[132,  94],
            [  4, 117],
            [ 76,  72],
            [116,  38],
            [ 22,  19]]), array([[ 92,  62,  76,  95],
            [116, 148,  67,  78],
            [ 77,   1,  61,  80],
            [ 61,  88, 143,  67],
            [ 35,  85,  10,  35]])]

  24. #垂直切分
    np.vsplit(n5,(1,3))
    
    

    [array([[ 45, 132,  94,  92,  62,  76,  95]]),
    array([[ 51,   4, 117, 116, 148,  67,  78],
            [101,  76,  72,  77,   1,  61,  80]]),
    array([[ 92, 116,  38,  61,  88, 143,  67],
            [121,  22,  19,  35,  85,  10,  35]])]

  25. #水平切分
    np.hsplit(n5,(1,3))

    [array([[ 64],
            [ 16],
            [ 50],
            [ 59],
            [140]]), array([[ 94, 101],
            [102,  27],
            [104, 132],
            [103, 148],
            [ 57, 147]]), array([[ 13, 103,  32, 128],
            [116, 125,  10, 145],
            [  4, 103, 126,  26],
            [ 77,  69,  71,  91],
            [ 18, 143,   3,  97]])]

  26. a = [x for x in range(5)]
    n = np.array(a)
    print(n)
    n[2] = 512
    print(n)
    
    n2 =n
    n2[2] = 1024
    display(n,n2)
    

    [0 1 2 3 4]
    [  0   1 512   3   4]

    array([   0,    1, 1024,    3,    4])

    array([   0,    1, 1024,    3,    4])

  27. n3 = n.copy()
    n3
    
    

    array([   0,    1, 1024,    3,    4])

  28. n3[2] = 0
    
    display(n,n3)
    

    array([   0,    1, 1024,    3,    4])

    array([0, 1, 0, 3, 4])

Numpy 是Python 语言的一个扩充程序库,支持高级的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy 内部解除了python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库。         2021/03/28   21:22:30    聪总结整理于连

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值