• 零基础学Python:Numpy用法


    在这里插入图片描述

    前言: 📢📢📢
    🏅🏅🏅作者简介:是Dream呀,华为云享专家、CSDN原力计划作者、Python领域优质创作者,专注分享Python领域原创系列文章。
    🌻🌻🌻热门专栏:【零基础学Python
    本课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
    🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信我或者文末添加vx,拉你进群,群内有行业大佬帮大家解答疑问,我们一起学习,群内定期还会有抽奖活动和红包相送嗷,快来进入我们吧~
    💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
    💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺

    Numpy是Python数据科学中的最核心的拓展库,用于科学分析和建模。 可以提供数组支持,以及相应的高效处理函数。

    一、创建数组

    1.array创建数组

    # 1.array创建数组
    import  numpy as np
    # a = np.array([[1,5],[4,5,7]])  # 创建数组,将元组或者列表作为参数
    b = np.array(([1,5,7],[4,5,7]))  # 创建二维的narray对象
    # print(type(a))
    print(type(b))
    # print(a)
    print(b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:



    [list([1, 5]) list([4, 5, 7])]
    [[1 5 7]
    [4 5 7]]

    2.arange()创建数组,与range()相似

    # 2.arange()创建数组,与range()相似
    import numpy as np
    a = np.arange(10)
    print(a)
    b = np.arange(1,10,2)  # 指定步长
    print(b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    3.linspace()用创建指定数量等间隔的序列,实际上生成一个等差数列

    # 3.linspace()用创建指定数量等间隔的序列,实际上生成一个等差数列
    import numpy as np
    a = np.linspace(0,1,10)
    print(a)
    
    • 1
    • 2
    • 3
    • 4

    [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
    0.66666667 0.77777778 0.88888889 1. ]

    4.logspace()用于生成等比数列

    # 4.logspace()用于生成等比数列
    import numpy as np
    a = np.logspace(0,2,5)  # 首位是10的2次方,末位是10的2次方
    print(a)
    
    • 1
    • 2
    • 3
    • 4

    [ 1. 3.16227766 10. 31.6227766 100. ]

    二、查看数组

    import numpy as np
    a = np.array([[1,5],[4,5,7],3])
    b = np.array(([1,5,3,4,5],[6,7,8,9,5]))
    print(type(a))
    print(type(b))
    
    • 1
    • 2
    • 3
    • 4
    • 5


    1.查看数组

    print(a)
    print(b)
    
    • 1
    • 2

    2.查看数组中每个元素的类型

    print(a.dtype)  # 查看数组中每个元素的类型
    print(b.dtype)
    
    • 1
    • 2

    object
    int32

    3.查看数组的行列

    print(a.shape)  # 查看数组的行列,3行
    print(b.shape)  # 查看数组的行数,返回行列的元组。5行5列
    
    • 1
    • 2

    (3,)
    (2, 5)

    4.查看数组的行数、列数

    print(b.shape[0])  # 查看数组的行数
    print(b.shape[1])  # 查看数组的列数
    
    • 1
    • 2

    2
    5

    5.查看数组的维数

    print(b.ndim)  # 查看数组的维数
    
    • 1

    2

    6.转置数组

    print(b.T)  # 转置数组
    
    • 1

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

    import numpy as np
    a = np.array([[1,5],[4,5,7],3])
    b = np.array(([1,5,3,4,5],[6,7,8,9,5]))
    print(type(a))
    print(type(b))
    print(a)
    print(b)
    print(a.dtype)  # 查看数组中每个元素的类型
    print(b.dtype)
    print(a.shape)  # 查看数组的行列,3行
    print(b.shape)  # 查看数组的行数,返回行列的元组。5行5列
    print(b.shape[0])  # 查看数组的行数
    print(b.shape[1])  # 查看数组的列数
    print(b.ndim)  # 查看数组的维数
    print(b.T)  # 转置数组
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    三、数组索引 切片

    import numpy as np
    a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
    b = np.array(([1,2,3,4,5],[6,7,8,9,10]))
    print(a)
    print(b)
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    1.选取第二行的元素

    print(a[:])  # 选取全部元素
    print(a[1])  # 选取第二行的元素
    
    • 1
    • 2

    [[ 1 2 3 4 5]
    [ 6 7 8 9 10]]
    这个是列表
    [ 6 7 8 9 10]

    2.选取[0:1)中的全部元素

    print(a[0:1])  # 选取[0:1)中的全部元素
    
    • 1

    这个是数组
    [[1 2 3 4 5]]

    3.选取第二行中第[2:5)的元素

    print(a[1,2:5])  # 选取第二行中第[2:5)的元素
    print(a[1,:])  # 选取第二行之后的
    
    • 1
    • 2

    这个是列表
    [ 8 9 10]
    [ 6 7 8 9 10]

    4.选取行为1,列为2的元素8

    print(a[1,2])  # 选取行为1,列为2的元素8
    print(a[1][2])  # 选取行为1,列为2的元素8
    
    • 1
    • 2

    8
    8

    import numpy as np
    a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
    b = np.array(([1,2,3,4,5],[6,7,8,9,10]))
    print(a)
    print(b)
    print(a[:])  # 选取全部元素
    print(a[1])  # 选取第二行的元素
    print(a[0:1])  # 选取[0:1)中的全部元素
    print(a[1,2:5])  # 选取第二行中第[2:5)的元素
    print(a[1,:])  # 选取第二行之后的
    print(a[1,2])  # 选取行为1,列为2的元素8
    print(a[1][2])  # 选取行为1,列为2的元素8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    四、矩阵运算

    import numpy as np
    import numpy.linalg as lg
    a = np.array([[1,2,3],[4,5,6],[5,4,5]])
    b = np.array([[1,5,4],[3,4,8],[8,5,6]])
    
    • 1
    • 2
    • 3
    • 4

    1.相加减

    print(a+b)
    print(a-b)
    
    • 1
    • 2

    [[ 2 7 7]
    [ 7 9 14]
    [13 9 11]]
    [[ 0 -3 -1]
    [ 1 1 -2]
    [-3 -1 -1]]

    2.相除

    print(a/b)  # 相除
    print(a%b)  # 相除后取余数
    
    • 1
    • 2

    [[1. 0.4 0.75 ]
    [1.33333333 1.25 0.75 ]
    [0.625 0.8 0.83333333]]
    [[0 2 3]
    [1 1 6]
    [5 4 5]]

    3.矩阵每个元素取n次方

    print(a**5)  # 矩阵每个元素取n次方
    
    • 1

    [[ 1 32 243]
    [1024 3125 7776]
    [3125 1024 3125]]

    4.点乘满足:第一个矩阵的列数等于第二个矩阵的行数

    print(a.dot(b))  # 点乘满足:第一个矩阵的列数等于第二个矩阵的行数
    
    • 1

    [[31 28 38]
    [67 70 92]
    [57 66 82]]

    5.转置

    print(a.transpose())  # 转置等价于print(a.T)
    
    • 1

    转置等价于print(a.T)
    [[1 4 5]
    [2 5 4]
    [3 6 5]]

    6.用linalg的inv()函数来求逆

    print(lg.inv(a))  # 用linalg的inv()函数来求逆
    
    • 1

    [[-0.16666667 -0.33333333 0.5 ]
    [-1.66666667 1.66666667 -1. ]
    [ 1.5 -1. 0.5 ]]

    import numpy as np
    import numpy.linalg as lg
    a = np.array([[1,2,3],[4,5,6],[5,4,5]])
    b = np.array([[1,5,4],[3,4,8],[8,5,6]])
    print(a+b)
    print(a-b)
    print(a/b)  # 相除
    print(a%b)  # 相除后取余数
    print(a**5)  # 矩阵每个元素取n次方
    print(a.dot(b))  # 点乘满足:第一个矩阵的列数等于第二个矩阵的行数
    print(a.transpose())  # 转置等价于print(a.T)
    print(lg.inv(a))  # 用linalg的inv()函数来求逆
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    JavaSE笔记——抽象类和接口
    Vue实现多角色登录,Vue-Router路由守卫控制权限页面
    Java 各种工具类的使用方法
    架构思考 (五)
    Flink学习8:数据的一致性
    3ds MAX 基本体建模,长方体、圆柱体和球体
    深度学习在图像处理中的应用学习笔记
    python中urllib库的使用
    elementui 中 DateTimePicker 组件时间自定义格式化
    C++之const浅谈(2)
  • 原文地址:https://blog.csdn.net/weixin_51390582/article/details/126678538