机器学习(4)- Numpy

本文详述了Numpy的核心优势,包括内存风格和高效的ndarray数据结构。重点介绍了Numpy的数组创建、索引切片、形状修改、类型转换以及基本的数学运算。特别强调了向量化运算的高效性和广播机制在数组间运算中的应用。
摘要由CSDN通过智能技术生成

Numpy

一. Numpy的优势[重点]

  • 是什么: 是一个Python开源科学计算库
  • 核心类: ndarray, 用于表示任意维度的数字
  • numpy优势:
    1. 内存风格:
      ndarray: 元素直接就是数据, 要求元素类型必须一致, 速度快
      list: 元素是真实数据的地址, 数据类型可以不一致, 速度慢
    2. ndarray; 支持向量化并行运算
    3. numpy底层使用C语言实现的, 解除GIL锁限制, 所以速度更快.

二. N维数组-ndarray[*]

  1. 属性:
    • 形状: shape (重点)
    • 维度: ndim
    • 元素个数: size
    • 元素元素长度(字节) : itemsize
    • 元素数据类型: dtype
  2. 数据类型:
    • 整数: np.int32, np.int64
    • 浮点数: np.float64
    • 字符串: np.string_

三. 基本操作[***]

1 生成数组的方法
  1. 生成0和1的数组

    • 根据形状生成全1的数组:
      • np.ones(shape, dtype)
    • 根据已知数组的形状生成全1的数组:
      • np.ones_like(数组, dtype)
    • 根据形状生成全0的数组:
      • np.zeros(shape, dtype)
    • 根据已知数组的形状生成全0的数组:
      • np.zeros_like(数组, dtype)
  2. 从现有数组生成

    • 深拷贝: np.array(), 产生新的内存空间
    • 浅拷贝: np.asarray() , 只是赋值操作, 拷贝的引用.
  3. 生成固定范围的数组

    • 生成等间隔数组(重点):
      • np.linspace(start, end, nums, endpoint, dtype)
    • 根据起始值,结束值以及步长生成数组(类似于Python的range方法)(重点):
      • np.arange(start, end, step, dtype)
    • 从10^start, 10^end生成num个等比序列:
      • np.logspace(start, end, num)
  4. 均匀分布

    • 概念: 生成的数组中每一个元素是等概率的.
    • API: np.random.uniform(low, high, size)
    • 参数:
      • low: 下限
      • high: 上限(不包含)
      • size: 形状
    # 绘制均匀分布的分布图
    import matplotlib.pyplot as plt
    
    # 准备数据
    arr = np.random.uniform(size=10000000)
    
    # 创建画布
    plt.figure(figsize=(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值