zoukankan      html  css  js  c++  java
  • Numpy基本介绍

    1 Numpy优势
    1.定义
    开源的Python科学计算库,
    用于快速处理任意维度的数组
    Numpy中,存储对象是ndarray
    2.创建
    np.array([])
    3.numpy的优势
    内存块风格 -- 一体式存储
    支持并行化运算
    效率高于纯Python代码 -- 底层使用了C,内部释放了GIL
    2 N维数组-ndarray
    1.ndarray的属性
    属性名字 属性解释
    ndarray.shape 数组维度的元组
    ndarray.ndim 数组维数
    ndarray.size 数组中的元素数量
    ndarray.itemsize 一个数组元素的长度(字节)
    ndarray.dtype 数组元素的类型
    2.ndarray的形状
    np.array()
    三维数组不好理解 -- excel中有多个sheet
    3.ndarray的类型
    bool
    int
    float
    str
    ...
    注意:若不指定,整数默认int64,小数默认float64
    3 基本操作
    1 生成数组的方法
    1.生成0和1的数组
    np.ones()
    np.ones_like()
    2.从现有数组中生成
    np.array -- 深拷贝
    np.asarray -- 浅拷贝
    3.生成固定范围数组
    np.linspace()
    nun -- 生成等间隔的多少个
    np.arange()
    step -- 每间隔多少生成数据
    np.logspace()
    生成以10的N次幂的数据
    4 生成随机数组
    1.均匀分布生成
    np.random.uniform()
    low
    high
    size
    2.正态分布
    均值,方差
    均值 -- 图形的左右位置
    方差 -- 图像是瘦,还是胖
    值越小,图形越瘦高,数据越集中
    值越大,图形越矮胖,数据越分散
    3.正态分布api
    np.random.normal()
    low
    high
    size
    2.数组的索引、切片
    直接索引
    先对行进行索引,再进行列索引
    高维数组索引,从宏观到微观
    3.形状修改
    1.对象.reshape
    不进行行列互换,产生新变量
    2.对象.resize
    不进行行列互换,对原值进行更改
    3.对象.T
    进行行列互换
    4.类型修改
    对象.astype()
    5.数组去重
    np.unique()
    4 ndarray运算
    1.逻辑运算
    大于,小于直接进行判断
    赋值:满足要求,直接进行赋值
    2.通用判断函数
    np.all()
    所有满足要求,才返回True
    np.any()
    只要有一个满足要求,就返回True
    3.三元运算符
    np.where()
    满足要求,赋值第一个值,否则赋值第二个值
    np.logical_and()

    np.logical_or()

    4.统计运算
    min
    max
    midian
    mean
    std -- 标准差
    var -- 方差
    argmax -- 最大值下标
    argmin -- 最小值下标
    5 矩阵
    1.矩阵和向量
    矩阵:理解-二维数组
    向量:理解-一维数组
    2.加法和标量乘法
    加法: 对应位置相加
    乘法: 标量和每个位置的元素相乘
    3.矩阵向量(矩阵)乘法
    [M行, N列][N行, L列] = [M行, L列]
    4.矩阵乘法性质
    1.满足结合律,不满足交换律
    5.单位矩阵
    对角线为1,其他位置为0的矩阵
    6.逆
    矩阵A
    矩阵B=单位矩阵I
    那么A和B就互为逆矩阵
    7.转置
    行列互换
    6 数组间运算
    1.数组和数字是直接可以进行运算
    2.数组和数组
    需要满足广播机制
    维度相同
    shape对应位置为1
    3.矩阵乘法api
    np.dot --点乘
    np.matmul -- 矩阵相乘
    注意:两者之间在进行矩阵相乘时候,没有区别
    但是,dot支持矩阵和数字相乘

  • 相关阅读:
    Number Sequence ----HDOJ 1711
    B. Berland Bingo
    迷宫城堡--HDOJ 1269(Tarjan)
    迷宫城堡--HDOJ 1269
    前向星,链式前向星
    linux下建立无线wifi------简单实用!
    leetcode187- Repeated DNA Sequences- medium
    leetcode173- Binary Search Tree Iterator- medium
    leetcode170- Two Sum III
    leetcode167- Two Sum II
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/14269503.html
Copyright © 2011-2022 走看看