首页
学习
活动
专区
圈层
工具
发布

用Python玩转统计数据:取样、计算相关性、拆分训练模型和测试

你也可以手动计算平均数、标准差及其他描述性的统计数据。...更多 描述性的统计数据也可用SciPy和NumPy计算得到。当然,比起pandas来不那么直观(data_describe_alternative.py文件)。 首先加载两个模块。...最终可以计算出要求的数据: .genfromtxt(...)方法创建的数据是一系列元组。.describe(...)方法只接受列表形式的数据,所以得先(使用列表表达式)将每个元组转换成列表。...首先,我们指定要从原数据集中抽样的记录数目: strata_cnt = 200 要保持不同卧室数目的取值比例与原数据集一致,我们首先计算每个桶中该放的记录数: ttl_cnt = sales['beds...我们先将原始的数据集分成两块,一块是因变量y,一块是自变量x: # 选择自变量和因变量 x = data[['zip', 'beds', 'sq__ft']] y = data['price'] 然后就可以拆了

3K20

Numpy 简介

什么是NumPy? NumPy是Python中科学计算的基础软件包。...NumPy数组 和 标准Python Array(数组) 之间有几个重要的区别: NumPy数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。...关于数组大小和速度的要点在科学计算中尤为重要。举一个简单的例子,考虑将1维数组中的每个元素与相同长度的另一个序列中的相应元素相乘的情况。...所有的ndarray都是同质的:每个条目占用相同大小的内存块,并且所有块都以完全相同的方式进行解释。如何解释数组中的每个项是由一个单独的数据类型对象指定的,其中一个对象与每个数组相关联。...第一个轴(维度)的长度为2,第二个轴(维度)的长度为3。 NumPy的数组类被称为ndarray。别名为 array。

6.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    6,特征的提取

    依据是用类似单词的文章意思也差不多。 CountVectorizer 类会将文档全部转换成小写。然后把句子分割成词块(token)或有意义的字母序列,并统计它们出现的次数。...词块大多是单词,但是他们也可能是一些短语,字母长度小于2的词块(如 I, a)被略去。 可以用stop_words选项排除一些常用但没有太多意义的助词(如is,are,in)。 ?...2,Tf–idf权重向量 单词频率对文档意思有重要作用,但是在对比长度不同的文档时,长度较长的文档的单词频率将明显倾向于更大。因此将单词频率正则化为权重是个好主意。...Hash函数可以将一个任意长度的字符串映射到一个固定长度的散列数字中去。Hash函数是一种典型的多对一映射。 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。...即对于任意两个不同的数据块,其hash值相同的可能性极小;对于一个给定的数据块,找到和它hash值相同的数据块极为困难。 目前流行的Hash函数包括MD4,MD5,SHA等。 ?

    1.3K31

    一文读懂RAG Fixed-Size Chunking 策略解析与最佳实践

    Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的 RAG 架构的切块策略—Fixed-Size Chunking(固定切块)。      ...固定大小切分(Fixed-Size Chunking) 策略的核心思想是将长文本内容按照预设的、统一的长度单位进行机械式分割。...例如,我们可以将一篇冗长的文档,每隔 200 个词语或 512 个 Token 就切分成一个独立的文本块。...—03 — Fixed-Size Chunking 策略简单实现示例解析      接下来,我们来看一个简单的示例,基于 Python 代码实现如何将文本按固定词数进行切分。...执行运行: [(base) lugalee@labs rag ]% /opt/homebrew/bin/python3 /Volumes/home/rag/fixedsiz.py 原始文本被切分成了 2

    53610

    RAG 架构实战:Fixed-Size Chunking(固定切块) 解析

    Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的 RAG 架构的切块策略—Fixed-Size Chunking(固定切块)。...固定大小切分(Fixed-Size Chunking) 策略的核心思想是将长文本内容按照预设的、统一的长度单位进行机械式分割。...例如,我们可以将一篇冗长的文档,每隔 200 个词语或 512 个 Token 就切分成一个独立的文本块。...—03 — Fixed-Size Chunking 策略简单实现示例解析 接下来,我们来看一个简单的示例,基于 Python 代码实现如何将文本按固定词数进行切分。...执行运行: (base) lugalee@labs rag % /opt/homebrew/bin/python3 /Volumes/home/rag/fixedsiz.py 原始文本被切分成了 2 个块

    38510

    如何将一个2D数组切分成多个块

    要将一个2D数组切分成多个块,可以考虑使用以下几种方法,具体取决于如何定义块的划分规则和需求。如果你希望将2D数组均匀地切分成固定大小的小块,可以使用简单的循环和切片操作。...1、问题背景Python 中, 如果有一个 raw 数据文件,将其读入到字节缓冲区(python 字符串),其中每一个数据值代表一个2d 数组中 8 位像素。...这些块的高度和宽度是任意的,只要满足面积约束即可,并且块的大小不必相同。此外,输入数据的长度也不一定是2的幂。2、解决方案方法一:为了代码尽量简洁,可以将数据存储为按行存储的行。...,并将每个块的数据存储到一个列表中。...然后可以对每个块单独处理。有时候需要根据块的形状或大小来划分数组,这可能需要使用图像处理库或者几何算法来检测并划分块。这些示例展示了如何根据不同的需求将2D数组切分成多个块。

    94910

    FlashAttention算法详解

    因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。...方法如下: 基本上,为了计算属于前2个块(大小为B)的分数的softmax,必须要跟踪每个块的2个统计数据:m(x)(最大分数)和l(x) (exp分数总和)。...M(保存逐行最大分数)初始化为-inf,因为我们将对其进行Max运算符,因此无论第一个块的Max是什么-它肯定大于-inf 。 第3步: 步骤1中的块大小将Q, K和V分成块。...只有在我们遍历上图中的所有红色块之后,我们才能最终得到确切的结果。 第13步 将最新的累加到统计数据(l_i & m_i)写回HBM。注意它们的维数是B_r。...反向传播 对于GPU内存的占用,另外一个大头就是反向传播,通过存储输出O (Nxd)和softmax归一化统计数据(N),我们可以直接从SRAM中的Q, K和V (Nxd)块中反向计算注意力矩阵S (NxN

    1.7K20

    Hill加密法

    需要的知识:线性代数基础(矩阵乘法,逆矩阵) 该加密算法将含有m个字母的明文块加密成含有m个字母的密文块。...例如,如果m=3,那么3个明文字母的数值(假设为p1,p2和p3)将通过如下的方程组转换成密文数值c1,c2和c3: ? 该加密法的秘钥是kij的值。 加上秘钥之后,方程组变成了这样: ?...可以从m=3的示例中归纳出用数学方法表示Hill加密法的一般形式。秘钥写成一个的可逆矩阵形式: ? 将明文分成块,每个块含m个字母,用m*1的向量表示。...例如,第i块含有字符p1,p2,......pm,写成如下形式: ? 那么密文就由如下计算结果确定: ?...补充:求逆矩阵方法 方法一:使用python的numpy模块(需自行安装) 示例: import numpy as np a = np.matrix([[1,2],[4,7]]) print a.I print

    2.6K100

    NumPy学习笔记—(13)

    ,其中最后固定长度的字节才真正存储这个整数。...下图展示了动态类型的列表和固定类型的数组(NumPy 实现的)的区别: ? Array Memory Layout 从底层实现上看,数组仅仅包含一个指针指向一块连续的内存空间。...而 Python 列表,含有一个指针指向一块连续的指针内存空间,里面的每个指针再指向内存中每个独立的 Python 对象,如我们前面看到的整数。...NumPy 使用的固定类型的数组缺少这种灵活性,但是对于存储和操作数据会高效许多。 1.3.Python 的固定类型数组 Python 提供了许多不同的选择能让你高效的存储数据,使用固定类型数据。...: 将多个数组组合成一个,或者将一个数组切分成多个 2.1.NumPy 数组属性 首先我们来讨论一些数组有用的属性。

    1.8K20

    Python算法——Merkle树

    Python中的Merkle树 Merkle树是一种哈希树结构,常被用于确保数据完整性和验证大规模数据集中的数据一致性。...在本文中,我们将深入讲解Merkle树的原理、构建方法以及在Python中的实现,并提供相应的代码示例。...Merkle树具有以下特点: 叶子节点是数据块的哈希值: 将数据分成固定大小的块,对每个块进行哈希运算,得到哈希值作为叶子节点。...这种结构使得我们能够在不下载整个数据集的情况下验证特定数据块的完整性。...Merkle树的构建 Merkle树的构建过程基于以下步骤: 将数据分块并计算叶子节点哈希值: 将数据分成固定大小的块,对每个块进行哈希运算,得到叶子节点的哈希值。

    96110

    基础RAG实现,最佳入门选择(一)

    return all_text # 返回整个PDF提取后的完整文本内容def chunk_text(text, n, overlap): """ 将给定文本按照指定长度分块,并允许相邻块之间有重叠...PDF文件import os # 提供与操作系统交互的功能import numpy as np # 用于数值计算和数组操作import json # 用于处理JSON数据的解析与生成from zhipuai...# 返回提取的完整文本def chunk_text(text, n, overlap): """ 将文本分割成固定长度的片段,每个片段之间有重叠部分。...E:\AworkNew2025\all-rag-techniques\test\01_simple_rag.ipynb.py 正在从PDF提取文本...正在将文本分块...文本被分成了 339 个块正在生成文本嵌入向量...日常工作中,培养即时总结的习惯,对经历进行记录与反思,是避免临阵磨块 3:、机器学习、分布式系统、数据库管理等。行业经验:涉及的行业如金融、电子商务,及特定业务如客户关系管理、支付系统等。

    29610

    一文解决RAG核心痛点:当文本分块遇上动态重叠与结构预测

    RAG系统的标准工作流包含三个关键阶段:​​知识库构建​​:将文档分割为语义块 → 生成向量嵌入 → 存储至向量数据库​​实时检索​​:将用户查询向量化 → 检索Top-K相关文本块​​生成响应​​:将检索结果与查询拼接...接下来,我们就深入探讨RAG 的几大分块策略二、五大分块策略深度解析策略1:固定尺寸分块(Fixed-size Chunking)生成块的最直观和直接的方法是根据预定义的字符、单词或标记数量将文本分成统一的段...一旦发生这种情况,我们就开始新的部分并重复。输出可能如下所示:与固定大小的块不同,这保持了语言的自然流畅并保留了完整的想法。...接下来,第 1 段被进一步分成更小的块。与固定大小的块不同,这种方法还保持了语言的自然流畅性并保留了完整的想法。然而,在实施和计算复杂性方面存在一些额外的消耗。​...# GPT-4提示词设计你是一位专业文本分析师,请根据语义完整性将以下文档分割为多个段落块:要求:1. 每个块包含完整语义单元2. 最大长度不超过512token3.

    83011

    在TensorFlow 2中实现完全卷积网络(FCN)

    3表示图像中的通道数,该数量对于彩色图像(RGB)是固定的。...确定最小输入尺寸的尝试和错误方法如下: 确定要堆叠的卷积块数 选择任何输入形状以说出(32, 32, 3)并堆叠数量越来越多的通道的卷积块 尝试构建模型并打印model.summary()以查看每个图层的输出形状...具体来说,希望(height, width, num_of_filters)最后一个卷积块的输出中的高度和宽度为常数或1。滤波器的数量始终是固定的,因为这些值是在每个卷积块中定义的。...在传统的图像分类器中,将图像调整为给定尺寸,通过转换为numpy数组或张量将其打包成批,然后将这批数据通过模型进行正向传播。在整个批次中评估指标(损失,准确性等)。根据这些指标计算要反向传播的梯度。...累积python列表(批处理)中每个图像的度量。 使用累积的指标计算损耗和梯度。将渐变更新应用到模型。 重置指标的值并创建新的图像列表(批次)。 尝试了上述步骤,但建议不要采用上述策略。

    6.1K31

    试试号称最好的7B模型

    一个固定的注意力跨度意味着我们可以使用滚动缓冲区缩小缓存的大小。缓存的大小为 W,而在时间步 i 的键和值存储在缓存的位置 i mod W 中。...因此,当位置 i 大于 W 时,缓存中的过去数值被覆盖,并且缓存的大小停止增加。下图中提供了一个以 W = 3 为例的说明。...在32k个标记的序列长度上,这将使缓存的内存使用减少了8倍,而不影响模型的质量。 预先填充和分块。在生成序列时,我们需要逐个预测标记,因为每个标记都取决于前面的标记。...然而,提示是预先知道的,我们可以使用提示来预先填充 (k, v) 缓存。如果提示非常大,我们可以将其分成较小的块,并使用每个块来预先填充缓存。为此,我们可以将窗口大小选择为我们的块大小。...对于每个块,我们需要计算缓存和块上的注意力。图3展示了注意力掩码如何作用于缓存和块上。 部署与复现 首先安装所需要的依赖,推荐新建 conda 环境安装。

    74110

    解码:哈希算法如何工作的示例

    当您想要识别或比较文件或数据库时,哈希非常方便。与其比较原始形式的数据,计算机比较哈希值要容易得多。无论是存储密码,计算机图形还是SSL证书,哈希都能做到这一切。...让我们把笑话放在一边,专注于问题的关键。哈希函数是一种数学函数,它将输入值转换为压缩数值 - 哈希值或哈希值。基本上,它是一个处理单元,它接收任意长度的数据并为您提供固定长度的输出 - 哈希值。 ?...正如我们所讨论的,散列函数位于散列算法的核心。但是,要获得预设长度的哈希值,首先需要将输入数据划分为固定大小的块。这是因为散列函数接收固定长度的数据。这些块称为“数据块”。这在下图中进行了说明。 ?...使用填充技术,整个消息被分成固定大小的数据块。散列函数重复与数据块的数量一样多的次数。这就是它的完成方式: ? 如上所示,一次处理一个块。第一数据块的输出作为输入与第二数据块一起馈送。...因此,第二个输出与第三个块一起输入,依此类推。因此,我们将最终输出作为所有块的组合值。如果在消息中的任何位置更改一位,则整个哈希值会更改。这被称为“雪崩效应”。

    1.4K20

    破解LLM性能瓶颈:你必须了解的两项注意力优化技术​

    将输入矩阵Q、K、V分割成小块,每次只处理其中一块数据,在GPU的片上SRAM中进行计算,避免频繁访问高带宽内存(HBM)。...分块策略将Q、K、V矩阵分割为多个小块,块大小的选择需平衡SRAM容量与计算效率。具体来说,将Q分成Tr块,每块大小为Br×d;将K和V分成Tc块,每块大小为Bc×d。...核心问题:KV Cache管理的挑战传统的KV Cache管理方式通常为每个请求预分配一个连续的大块内存,其大小等于模型的最大序列长度。...核心原理PagedAttention将每个序列的KV缓存进行分块,每个块包含固定长度的token的KV对。通过页面表(page table)维护逻辑地址到物理地址的映射,实现动态内存分配和共享。...PagedAttention将KV Cache划分成块,块在内存空间上不需要连续。系统为每个请求维护一个"块表"(类似于操作系统的页表),该表存储了逻辑块到物理块的映射关系。

    73711

    分页和分段的联系和区别

    分页存储管理 1.基本思想     用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。...每个段都从0开始编址,并采用一段连续的地址空间。 段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间是二维的。...程序执行时,从PCB中取出段表始址和段表长度(3),装入段表寄存器。 (2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。...,满足用户的需要. (2)页的大小固定,由系统确定,将逻辑地址划分为页号和页内地址是由机器硬件实现的.而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分....与页式管理页长度相同不一样,段的长度是不同的,每个段定义一组逻辑上完整的程序或数据。例如,在DOS操作系统中,一个程序内部被分为了正文段、数据段、堆栈段等。每个段是一个首地址为O并连续的一维线性空间

    7K10

    【论文复现】试试号称最好的7B模型

    由于注意力跨度是固定的,因此可以使用一个大小为W的滚动缓冲区来存储键和值。在时间步i时,键和值会被存储在缓存的位置i mod W中。...以一个窗口大小W=3的示例来说,在长度为32,000的序列上,这种方法可以将缓存的内存使用量减少8倍,同时保持模型的性能不变。 预先填充和分块。...如果提示非常大,我们可以将其分成较小的块,并使用每个块来预先填充缓存。为此,我们可以将窗口大小选择为我们的块大小。对于每个块,我们需要计算缓存和块上的注意力。...图3展示了注意力掩码如何作用于缓存和块上。 部署与复现 首先安装所需要的依赖,推荐新建 conda 环境安装。...微调 使用准备好的数据集(位于dataset,mlabonne/guanaco-llama2-1k)微调模型。你也可以使用自己的数据集,打开train.py 编辑dataset 的路径即可。

    60510

    2-Numpy 初学

    在所有变量都是同一类型的特殊情况下,许多信息都是多余的:将数据存储在固定类型的数组中会更加有效。下图说明了动态类型列表和固定类型(NumPy样式)数组之间的区别: ?...从上面实现可以看到,数组本质上包含一个指向一个连续数据块的指针。另一方面,Python列表包含一个指向一组指针的指针,每个指针都指向一个完整的Python对象,例如我们之前看到的Python整数。...同样,python列表的优点是灵活性:由于每个列表元素都是包含数据和类型信息的完整结构,因此可以用任何所需类型的数据填充列表。...固定类型的NumPy样式的数组缺乏这种灵活性,但是在存储和处理数据方面效率更高。 Python提供了几种不同的选项来将数据存储在高效的固定类型数据缓冲区中。...下面,我们将演示创建NumPy数组的几种方法。

    61020

    python中dtype什么意思_NumPy Python中的数据类型对象(dtype)

    这意味着它为我们提供了有关以下信息: 数据类型(整数,浮点数,Python对象等) 数据大小(字节数) 数据的字节顺序(小端或大端) ndarray的值存储在缓冲区中,可以将其视为内存字节的连续块。...,浮点数,指定字节长度的复数和固定长度字符串) int8,…,uint8,…,float16,float32,float64,complex64,complex128 (这次具有位大小) 注意 : dtype...0级缩进的代码 […]… Python中的函数 函数是一组语句,这些语句接受输入,进行一些特定的计算并产生输出。...这个想法是将一些通常重复执行的任务放在一起并创 […]… Python中的反射 反射是指代码能够检查可能作为参数传递给函数的对象属性的能力。...双端队列优于列表中的情 […]… Numpy 数据类型对象 每个ndarray都有一个关联的数据类型(dtype)对象。

    2.9K10
    领券