zoukankan      html  css  js  c++  java
  • 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)

    1. numpy科学计算基础库

    1.1 什么是numpy

    NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    NumPy的前身Numeric最早是由Jim Hugunin与其它协作者共同开发,2005 年,Travis Oliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入了其它扩展而开发了NumPy。NumPy为开放源代码并且由许多协作者共同维护开发。

    NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:

    • 一个强大的N维数组对象 ndarray
    • 广播功能函数
    • 整合 C/C++/Fortran 代码的工具
    • 线性代数、傅里叶变换、随机数生成等功能

    1.2 创建数组(矩阵)

    # coding=utf-8
    import numpy as np
    
    #使用numpy生成数组,得到ndarray的类型
    t1 = np.array([1,2,3,])
    print(t1)
    print(type(t1))
    
    t2 = np.array(range(10))
    print(t2)
    print(type(t2))
    
    t3 = np.arange(4,10,2)
    print(t3)
    print(type(t3))
    print(t3.dtype)

    运行结果

    1.3 数据类型

    名称描述
    bool_ 布尔型数据类型(True 或者 False)
    int_ 默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
    intc 与 C 的 int 类型一样,一般是 int32 或 int 64
    intp 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
    int8 字节(-128 to 127)
    int16 整数(-32768 to 32767)
    int32 整数(-2147483648 to 2147483647)
    int64 整数(-9223372036854775808 to 9223372036854775807)
    uint8 无符号整数(0 to 255)
    uint16 无符号整数(0 to 65535)
    uint32 无符号整数(0 to 4294967295)
    uint64 无符号整数(0 to 18446744073709551615)
    float_ float64 类型的简写
    float16 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
    float32 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
    float64 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
    complex_ complex128 类型的简写,即 128 位复数
    complex64 复数,表示双 32 位浮点数(实数部分和虚数部分)
    complex128 复数,表示双 64 位浮点数(实数部分和虚数部分)
    # coding=utf-8
    import numpy as np
    import random
    
    # int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替
    t1 = np.array(range(1,4),dtype="i1")
    print(t1)
    print(t1.dtype)
    
    ##numpy中的bool类型
    t2 = np.array([1,1,0,1,0,0],dtype=bool)
    print(t2)
    print(t2.dtype)
    
    #调整数据类型
    t3 = t2.astype("int8")
    print(t3)
    print(t3.dtype)
    
    #numpy中的小数
    t4 = np.array([random.random() for i in range(10)])
    print(t4)
    print(t4.dtype)
    
    t5 = np.round(t4,2)
    print(t5)

    运行结果:

    1.4 数组的形状

    # coding=utf-8
    import numpy as np
    
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    print(a)
    
    #查看数组形状
    print(a.shape)
    
    #修改数组形状
    print(a.reshape(3,4))
    
    #原数组形状不变
    print(a.shape)
    
    b = a.reshape(3,4)
    
    print(b.shape)
    
    print(b)
    
    #把数组转化为1维度数据
    print(b.reshape(1,12))
    
    print(b.flatten())

    运行结果:

    1.5 数组和数的计算

    # coding=utf-8
    import numpy as np
    
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    
    print(a)
    
    #加法减法
    print(a+5)
    print(a-5)
    
    #乘法除法
    print(a*3)
    print(a/3)

    运行结果:

    1.6 数组和数组的计算

    # coding=utf-8
    import numpy as np
    
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    
    b = np.array([[21,22,23,24,25,26],[27,28,29,30,31,32]])
    
    #数组和数组的加减法
    print(a+b)
    print(a-b)
    
    #数组和数组的乘除法
    print(a*b)
    print(a/b)

    运行结果:

    不同维度数组的计算:

    # coding=utf-8
    import numpy as np
    
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    
    c = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
    
    #不同维度的数组计算
    print(a*c)

    运行结果:

    # coding=utf-8
    import numpy as np
    #2行6列的数组
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    #1行6列的数组
    c = np.array([1,2,3,4,5,6])
    
    print(a-c)
    print(a*c)

    运行结果:

    # coding=utf-8
    import numpy as np
    #2行6列的数组
    a = np.array([[3,4,5,6,7,8],[4,5,6,7,8,9]])
    #1行6列的数组
    c = np.array([[1],[2]])
    
    print(a+c)
    print(a*c)
    print(c*a)

    运行结果:

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/liuhui0308/p/12632662.html
Copyright © 2011-2022 走看看