• 【Python】Numpy数据分析教程


    目录

    Numpy简介

    Numpy基本属性

    用Numpy创建array

    Numpy的基础运算(一)

    Numpy的基本运算(二)

    Numpy的索引

    Numpy的合并和分割

    Numpy的copy


    Numpy简介

    Numpy是Python中的一个用于数据处理的库,可以用来处理矩阵等数据,方便快捷。

    下面以代码和注释的方式来介绍Numpy中的实用功能,所有操作和array数组相关。

    Numpy基本属性

    1. import numpy as np # 取缩写np代替numpy接下来要用到的话就直接写np.即可
    2. # 第一节介绍的是numpy的一些属性
    3. array = np.array([[1,2,3],[2,3,4]]) # 定array为numpy的矩阵类型
    4. print(array)
    5. # 打印矩阵的维数
    6. print('number of dim:',array.ndim)
    7. # 打印矩阵的形状(几行几列)
    8. print('shape:',array.shape)
    9. # 打印矩阵的大小,也就是元素的数量
    10. print('size:',array.size)
    [[1 2 3]
     [2 3 4]]
    number of dim: 2
    shape: (2, 3)
    size: 6

    用Numpy创建array

    1. import numpy as np
    2. # 第二节介绍如何用numpy创建array
    3. a = np.array([2,3,4]) #输出没有逗号分隔
    4. print(a)
    5. # 定义矩阵元素的数据类型
    6. b = np.array([2,23,4],dtype = int) # 直接写int则默认为32位的
    7. print(a.dtype)
    8. c = np.array([3,4,5],dtype = float)
    9. print(c.dtype)
    10. d = np.array([[1,2,3],
    11. [4,5,6]]) # 定义一个二维矩阵时,尽量写成方形
    12. print(d)
    13. e = np.zeros((3,4)) # 输出一个全为0的矩阵,描述矩阵每个维度的大小时,要在外面加个括号
    14. print(e)
    15. f = np.ones((3,4),dtype = int) # 输出全为1的矩阵,同时可以指定元素的数据类型
    16. print(f)
    17. g = np.empty((3,4)) # 生成一个每个元素接近为0的矩阵
    18. print(g)
    19. h = np.arange(10,20,2) # 生成从10到20,步长为2的数组
    20. print(h)
    21. i = np.arange(12).reshape((3,4)) # 需要更改形状时,都可以在后面加reshape,但要记住多加一层括号
    22. print(i)
    23. j = np.linspace(1,10,5) # 生成一条线段,数据从1到10之间,有五个节点
    24. print(j)
    [2 3 4]
    int32
    float64
    [[1 2 3]
     [4 5 6]]
    [[0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]
    [[1 1 1 1]
     [1 1 1 1]
     [1 1 1 1]]
    [[0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]
    [10 12 14 16 18]
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [ 1.    3.25  5.5   7.75 10.  ]

    Numpy的基础运算(一)

    1. import numpy as np
    2. # 下面两节介绍numpy的基础运算
    3. a = np.array([10,20,30,40])
    4. b = np.arange(4)
    5. print(a,b)
    6. c = a + b # 可为加减乘除,平方为**
    7. print(c)
    8. print(b**2)
    9. c = 10 * np.sin(a) # 也可以调用cos、tan
    10. print(c)
    11. print(b)
    12. print(b<3) # 判断哪些值小于3,位置上返回true或false,也可以是>或==
    13. a = np.array([[1,1],
    14. [0,1]])
    15. b = np.arange(4).reshape((2,2))
    16. print(a)
    17. print(b)
    18. c = a * b # 元素的乘法
    19. c_dot = np.dot(a,b) # 矩阵的乘法
    20. c_dot_2 = a.dot(b) # 与上面的计算结果相同
    21. print(c)
    22. print(c_dot)
    23. print(c_dot_2)
    24. a = np.random.random((2,4)) # 随机生成数字
    25. print(a)
    26. print(np.sum(a,axis = 1)) # 按列求和
    27. print(np.min(a,axis = 0)) # 按行求最小值
    28. print(np.max(a,axis = 1)) # 按列求最大值

    Numpy的基本运算(二)

    1. import numpy as np
    2. A = np.arange(2,14).reshape(3,4)
    3. print(A)
    4. print(np.argmin(A)) # 最小值
    5. print(np.argmax(A)) # 最大值
    6. # 下面三个都是输出平均值
    7. print(np.mean(A))
    8. print(A.mean())
    9. print(np.average(A))
    10. print(np.median(A)) # 输出中位数
    11. print(A)
    12. print(np.cumsum(A)) # 逐个元素累加,生成一个一维数组
    13. print(A)
    14. print(np.diff(A)) #输出行中相邻元素的差
    15. print(np.nonzero(A)) # 输出两个数组,第一个数组存储非零元素的行数,第二个数组存储非零元素的列数
    16. print(np.sort(A)) # 逐行排序
    17. print(np.transpose(A)) # 矩阵的转置,行列互换
    18. print((A.T).dot(A))
    19. print(np.clip(A,5,9)) # 让A中所有小于5的数都变成5,所有大于9的数都变成9
    [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    0
    11
    7.5
    7.5
    7.5
    7.5
    [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    [ 2  5  9 14 20 27 35 44 54 65 77 90]
    [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    [[1 1 1]
     [1 1 1]
     [1 1 1]]
    (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]]
    [[ 2  6 10]
     [ 3  7 11]
     [ 4  8 12]
     [ 5  9 13]]
    [[140 158 176 194]
     [158 179 200 221]
     [176 200 224 248]
     [194 221 248 275]]
    [[5 5 5 5]
     [6 7 8 9]
     [9 9 9 9]]

    Numpy的索引

    1. import numpy as np
    2. # 本节介绍numpy的索引
    3. A = np.arange(3,15)
    4. print(A)
    5. print(A[3])
    6. A = np.arange(3,15).reshape(3,4) # 下面是简单的索引方法
    7. print(A)
    8. print(A[2])
    9. print(A[1][1])
    10. print(A[1,1])
    11. print(A[2,:])
    12. print(A[:,1])
    13. print(A[1,1:3])
    14. for col in A.T: # 按列打印的技巧
    15. print(col)
    16. print(A.flatten()) # 把多维矩阵展开成一维
    17. for item in A.flat: # 逐个打印出所有元素
    18. print(item)
    [ 3  4  5  6  7  8  9 10 11 12 13 14]
    6
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    [11 12 13 14]
    8
    8
    [11 12 13 14]
    [ 4  8 12]
    [8 9]
    [ 3  7 11]
    [ 4  8 12]
    [ 5  9 13]
    [ 6 10 14]
    [ 3  4  5  6  7  8  9 10 11 12 13 14]
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    Numpy的合并和分割

    1. import numpy as np
    2. # 本节介绍numpy的array的合并和分割
    3. A = np.array([1,1,1])
    4. B = np.array([2,2,2])
    5. A = A[:,np.newaxis] # 将A这个一位数组纵向重置
    6. B = B[:,np.newaxis]
    7. print(np.vstack((A,B))) # vertical stack 上下合并
    8. print(np.hstack((A,B))) # horizontal stack 左右合并
    9. C = np.concatenate((A,B,B,A),axis = 1) # 可以定义矩阵在哪个维度进行合并
    10. print(C)
    11. A = np.arange(12).reshape((3,4))
    12. print(A)
    13. print(np.split(A,2,axis=1)) # 把数组按列分成相同大小的两份
    14. print(np.array_split(A,3,axis=1)) # 把数组按列分成三份,可以是不等项的分割
    15. print(np.vsplit(A,3)) # 纵向分成三份
    16. print(np.hsplit(A,2)) # 横向分成两份
    [[1]
     [1]
     [1]
     [2]
     [2]
     [2]]
    [[1 2]
     [1 2]
     [1 2]]
    [[1 2 2 1]
     [1 2 2 1]
     [1 2 2 1]]

    [[ 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]])]

    Numpy的copy

    1. import numpy as np
    2. # 本节介绍numpy的copy,也就是deep copy
    3. # numpy中赋值后所有变量是相同的,会互相跟随改变
    4. # 如果不想要变量间相互关联,就可以使用copy
    5. a = np.arange(12)
    6. b = a
    7. c = a.copy()
    8. print(a)
    9. print(b)
    10. print(c)
    11. c[0] = 1
    12. print(a)
    13. print(c)
    [ 0  1  2  3  4  5  6  7  8  9 10 11]
    [ 0  1  2  3  4  5  6  7  8  9 10 11]
    [ 0  1  2  3  4  5  6  7  8  9 10 11]
    [ 0  1  2  3  4  5  6  7  8  9 10 11]
    [ 1  1  2  3  4  5  6  7  8  9 10 11]
  • 相关阅读:
    【MySQL】3. 库的操作
    服务器主机管理系统是什么
    第五章 数据库完整性
    项目开发中关于 uniapp实现 Android和IOS获取App缓存,清除缓存功能
    java学习记录
    【复杂句的逻辑练习题】that 省略
    Maven 生命周期,仓库概念和打包命令区别(package、install、deploy)
    改进YOLOv5系列:结合ShuffleNet V2主干网络,高效CNN架构设计的实用指南
    java计算机毕业设计商院足球赛事管理源程序+mysql+系统+lw文档+远程调试
    接入API接口文档1688阿里巴巴获取跨境属性数据参考示例
  • 原文地址:https://blog.csdn.net/Summerison/article/details/133686799