首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将数据帧合并到模型矩阵:r

在数据处理和机器学习领域,将数据帧(DataFrame)合并到模型矩阵(Model Matrix)是一个常见的操作。以下是对这一过程的基础概念、优势、类型、应用场景以及可能遇到的问题和解决方案的详细解释。

基础概念

  1. 数据帧(DataFrame)
    • 数据帧是一种二维表格数据结构,类似于Excel表格或SQL表。
    • 它通常包含行(观测)和列(变量),并且每列可以有不同的数据类型。
  • 模型矩阵(Model Matrix)
    • 模型矩阵是用于线性模型(如线性回归)的输入数据格式。
    • 它通常是一个矩阵,其中每一行对应一个观测,每一列对应一个特征或变量的值。

优势

  • 统一格式:将数据帧转换为模型矩阵可以确保所有输入数据具有一致的格式,便于后续的模型训练和分析。
  • 高效计算:矩阵运算通常比逐行处理数据更高效,尤其是在大规模数据集上。

类型

  • 简单合并:直接将数据帧的所有列转换为模型矩阵。
  • 特征工程:在合并前可能需要对数据进行预处理,如缺失值处理、特征缩放、编码分类变量等。

应用场景

  • 机器学习模型训练:在构建和训练各种机器学习模型时,需要将原始数据转换为适合模型的格式。
  • 统计分析:在进行回归分析或其他统计检验时,模型矩阵是标准输入格式。

可能遇到的问题及解决方案

问题1:数据帧中包含非数值列

原因:某些列可能是分类变量或文本数据,不能直接用于数值计算。

解决方案

代码语言:txt
复制
import pandas as pd
from sklearn.preprocessing import OneHotEncoder

# 示例数据帧
df = pd.DataFrame({
    'feature1': [1, 2, 3],
    'category': ['A', 'B', 'A']
})

# 对分类变量进行独热编码
encoder = OneHotEncoder()
encoded_category = encoder.fit_transform(df[['category']]).toarray()

# 合并数值列和编码后的分类列
model_matrix = pd.concat([df[['feature1']], pd.DataFrame(encoded_category, columns=encoder.get_feature_names_out(['category']))], axis=1)

问题2:数据帧中存在缺失值

原因:缺失值会影响模型的准确性和稳定性。

解决方案

代码语言:txt
复制
# 示例数据帧
df = pd.DataFrame({
    'feature1': [1, None, 3],
    'feature2': [4, 5, 6]
})

# 填充缺失值(例如用均值填充)
df.fillna(df.mean(), inplace=True)

# 转换为模型矩阵
model_matrix = df.values

问题3:数据帧列顺序不一致

原因:不同来源的数据帧可能列顺序不同,导致合并时出现问题。

解决方案

代码语言:txt
复制
# 示例数据帧
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'B': [5, 6], 'A': [7, 8]})

# 确保列顺序一致
df1 = df1[['A', 'B']]
df2 = df2[['A', 'B']]

# 合并数据帧
merged_df = pd.concat([df1, df2], axis=0)
model_matrix = merged_df.values

通过以上方法,可以有效地将数据帧合并到模型矩阵,并解决常见的数据处理问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

web3.0卡牌链游项目系统开发源码解决方案(成熟技术)

首先工具函数:将cv的旋转矢量与位移矢量转换为变换矩阵,类型为Eigen::Isometry3d;   src/slamBase.cpp   1//cvMat2Eigen   2 Eigen::Isometry3d...:Matrix3d r;   7 cv::cv2eigen(R,r);   8   9//将平移向量和旋转矩阵转换成变换矩阵   10 Eigen::Isometry3d T=Eigen::Isometry3d...tvec.at<double>(0,1);   17 T(2,3)=tvec.at<double>(0,2);   18 return T;   19}   另一个函数:将新的帧合并到旧的点云里...:   1//joinPointCloud   2//输入:原始点云,新来的帧以及它的位姿   3//输出:将新来帧加到原始帧后的图像   4 PointCloud::Ptr joinPointCloud...  #起始与终止索引   start_index=1   end_index=700   #数据所在目录   rgb_dir=..

59130

【3.x合批亲测】使用这个优化方案,iPhone6也能飞起来,直接拉满60帧!

以上测试环境数据,我整理了个表格,方便大家对比优化后的效果: 如果你觉得看数据表还是很费劲的话,可以直接看晓衡这个结论: 开启合批优化后,所有平台都能跑到 60 帧,ScrollView列表滑动流畅...未合批前仅仅只有 5 帧,在列表上滑动,非常卡顿,基本上无法使用。开启合批后,直接拉满到60帧,列表滑动流畅。...其次是在 iPhone 上,小游戏上的优化比浏览器要好,未合批前不到 30 帧,开启合批后满帧 60,列表滑动也更顺滑。...尽可能一次性将更多的渲染数据提交给 GPU,减少 CPU 的工作时间,从而提升游戏性能。...有经验的你问题又来了,我们的逻辑代码通常是以单个 item 为单位建立的对象,如果将类型节点点合并到一起,上层逻辑代码岂不是要乱成一锅粥? 优化的方法是知道了,但代价太大,不知道如何下手!

1.7K31
  • 炒菜、雕刻、绘画、汽车人变形!MakeAnything用扩散Transformer解锁多任务过程生成

    外观漂移:前后帧的生成结果可能外观不一致; 3. 数据瓶颈:现有的步骤数据集规模小、领域单一,难以支持复杂任务训练。...而 MakeAnything 采用扩散 Transformer(DiT)作为基础模型,通过拼图将所有帧排版在一张图上,利用空间注意力机制捕捉步骤间依赖关系。...具体来说,MakeAnything 提出蛇形序列布局,将多步骤帧排列为蛇形排列的网格,确保时间相邻的步骤在空间上也相邻(见下图),强化模型对步骤顺序的感知。 2....在 LoRA 中,A 矩阵和 B 矩阵是关键组成部分,用于替换传统线性变换中的权重矩阵。A 矩阵通常是一个小尺寸的矩阵,用于将高维空间下采样到低维空间。B 矩阵负责将低维空间重新投影回原始高维空间。...评估指标 一个好的教程需要是连贯的、合逻辑的并且有用的。

    5200

    DeepSORT再升级 | Deep OC-SORT引入目标外观信息,大幅领先SOTA

    尽管如此,除了缺乏对特征退化的鲁棒性的简单启发式模型之外,很少有工作将外观线索纳入其中。 在本文中提出了一种利用对象外观的新方法,以将外观匹配自适应地集成到现有的高性能基于运动的方法中。...除了更有效地将外观线索添加到基于运动的对象关联之外,还集成了相机运动补偿,通过补充以对象为中心的运动模型来提高性能。 本文的方法为未来的工作提供了一个新的、有效的基线模型。...SORT依赖于目标跟踪的线性运动假设,并利用卡尔曼滤波器将来自目标检测器的预测与IoU的运动模型的位置估计相关联。当视频帧速率高时,线性运动假设对于相邻视频帧上的目标位移是有效的。...给定缩放旋转矩阵 M_t=s_tR_t 和平移 T_t ,其中 M_t \in R^{2×2} 和 T_t \in R^{2×1} ,将它们分别应用于OC-SORT的3个分量: 1、OOS + CMC...作者建议根据检测器的置信度,在每帧的基础上修改EMA的α。这种灵活的α允许只在高质量的情况下有选择地将外观信息合并到轨道的模型中。

    3.2K20

    一文详解回环检测与重定位

    pose_graph.cpp/.h 该文件主要构建了位姿图类:class PoseGraph,以及其他功能性函数,比如: YawPitchRollToRotationMatrix将欧拉角转换为旋转矩阵;...RotationMatrixTranspose对矩阵进行转置; RotationMatrixRotatePoint将Rt矩阵相乘等。...= -1: 1)将当前帧与回环帧进行描述子匹配,如果成功则确定存在回环 2)计算当前帧与回环帧的相对位姿,纠正当前帧位姿w_P_cur、w_R_cur 3)如果存在多个图像序列,则将所有图像序列都合并到世界坐标系下...4)将当前帧放入优化队列中 5、获取VIO当前帧的位姿P、R,根据偏移量计算得到实际位姿。...1、查询字典数据库,得到与每一帧的相似度评分ret 2、添加当前关键帧到字典数据库中 3、通过相似度评分判断是否存在回环候选帧 4、如果在先前检测到回环候选帧再判断:当前帧的索引值是否大于50,即系统开始的前

    2.7K10

    【VINS论文笔记】系列之回环检测与重定位

    pose_graph.cpp/.h 该文件主要构建了位姿图类:class PoseGraph,以及其他功能性函数,比如: YawPitchRollToRotationMatrix将欧拉角转换为旋转矩阵;...RotationMatrixTranspose对矩阵进行转置; RotationMatrixRotatePoint将Rt矩阵相乘等。...= -1: 1)将当前帧与回环帧进行描述子匹配,如果成功则确定存在回环 2)计算当前帧与回环帧的相对位姿,纠正当前帧位姿w_P_cur、w_R_cur 3)如果存在多个图像序列,则将所有图像序列都合并到世界坐标系下...4)将当前帧放入优化队列中 5、获取VIO当前帧的位姿P、R,根据偏移量计算得到实际位姿。...1、查询字典数据库,得到与每一帧的相似度评分ret 2、添加当前关键帧到字典数据库中 3、通过相似度评分判断是否存在回环候选帧 4、如果在先前检测到回环候选帧再判断:当前帧的索引值是否大于50,即系统开始的前

    3K41

    图形学复习

    简单光照模型:由反射光决定的简单模型 反射光=漫反射光+环境光+镜面反射光 多边形裁剪:将超出的定义裁剪面的多边形的视图窗口删除,如果线,点在多边形外部,则全部删除;如果只有部分在内部,则部分删除。...深度缓存算法:依次比较两个像素的深度值,将最小深度值存入深度缓存数组,最小深度值对应的颜色值存入帧缓存数组。...组合象素法:一个图形象素点的全部信息被编码成一个数据字节,按照一定方式存储到帧缓存中,编码字节的长度与点的属性(如颜色、灰度等)有关。 图形交互技术:是人和计算机进行图形数据双向通讯的技术。...简述图形是如何从图形数据呈现到屏幕上的原理、方法和过程。 显示缓冲区是与屏幕像素一一对应的二维矩阵,每一个存储单元对应着屏幕上的像素,其位置可由二维坐标来表示。...表登记项y对应的各“吊桶”合并到AET表中,将AET中各“吊桶”按x坐标递增排序; 3.2 在扫描线y上,按照AET提供的x坐标对,用color值实施填充; 3.3 将AET

    1.7K20

    干货:NIST评测(SRE19)获胜团队声纹识别技术分析 | CSDN博文精选

    为了解决训练不稳定的问题,FTDNN将每一层TDNN拆成两个低秩矩阵的乘积,通过半正交化第一个低秩矩阵,保证信息从高维到低维没有流失。...为了解决训练不稳定的问题,FTDNN将每一层TDNN拆成两个低秩矩阵的乘积,通过半正交化第一个低秩矩阵,保证信息从高维到低维没有流失。...其中,语音帧级别的语音识别模型和语音段级别的声纹识别模型共享了7层TDNN的参数,在训练的过程中,输入数据对应的声纹标签用于更新声纹模型,对应的文本标签用于更新语音识别模型。...由于同时含有声纹标签和文本标签的数据集很有限,为了产生其他声纹语料的文本标签,引入了一个额外的GMM-HMM模型用来对齐语音帧和文本标签。...因此简化的模型可以删除预训练的声学模型,然后将BN层合并到语音区分网络中,并从该层中提取语音矢量。 ?

    1.4K20

    Golang语言情怀--第118期 全栈小游戏开发:第9节:精灵帧资源(SpriteFrame)

    功能,动态合图会自动将合适的贴图在开始场景时动态合并到一张大图上来减少 Drawcall。...但是将贴图合并到大图中会修改原始贴图的 UV 坐标,如果在自定义 effect 中使用了贴图的 UV 坐标,这时 effect 中的 UV 计算将会出错,需要将贴图的 Packable 属性设置为 false...Size Mode 用来将节点的尺寸设置为原图或原图裁剪透明像素后的大小,通常用于在序列帧动画中保证图像显示为正确的尺寸。...下图中展示了两种常见组合的渲染效果: 自带位置信息的序列帧动画 有很多动画师在绘制序列帧动画时,会使用一张较大的画布,然后将角色在动画中的运动直接通过角色在画布上的位置变化表现出来。...TexturePacker 设置 在制作序列帧动画时,我们通常会使用 TexturePacker 这样的工具将序列帧打包成图集,并在导入后通过图集资源下的 SpriteFrame 来使用。

    25310

    交互式相机标定的高效位姿选择方法

    ---- 另一个方面是标定数据的质量和数量。 Sun和库珀斯托克[12]评估了摄像机模型对噪声的灵敏度、训练数据量和在模型复杂性方面的标定精度。...04 标定过程 在下面,我们将介绍参数细化和用户指导部分以及任何使用的启发式方法。这就完成了用于真实数据实验的标定流程。...所使用的校准方法[16]不仅估计了固有参数C,而且还估计了模型平面和图像平面的相对姿态,即参数R、三维旋转和t、三维平移。当使用M校准图像时,我们有d=9+6M未知数,每个点对应提供了两个约束。...算法计算如下:给定一组训练图像(校准序列): 无条件地添加如第3.4节中所述的初始化帧; 现在将剩余的每个帧单独添加到关键帧集中,并计算校准。 对于每个校准,使用测试帧计算估计误差。...使值最小化的帧被合并到关键帧集中。在步骤2中继续。 如果不能进一步减少或所有帧都已被使用,则终止。 在保持相同估计误差的情况下,贪婪最优解需要75%的帧,同时(见表1)。

    1K20

    HMM理论理解+实战

    参数: 初始的隐藏状态概率π参数为: startprob; 状态转移矩阵A参数为: transmat; 状态和观测值之间的转移矩阵B参数为: emissionprob_(MultinomialHMM模型中...)或者在GaussianHMM模型中直接给定均值(means)和方差/协方差矩阵(covars) ''' model = hmm.MultinomialHMM(n_components=n_status...综上帧长一般取为 20 ~ 50 毫秒,20、25、30、40、50 都是比较常用的数值,以上摘自知乎逻辑上很合理的解释,我通常听见的是(10-30ms) 一帧的数据长度 N=帧时间长度/T=帧时间长度...声学模型:描述一种语言的基本单位被称为音素Phoneme,例如BRYAN这个词就可以看做是由B, R, AY, AX, N五个音素构成的。...然而语音没有图像识别那么简单,因为我们再说话的时候很多发音都是连在一起的,很难区分,所以一般用左中右三个HMM state来描述一个音素,也就是说BRYAN这个词中的R音素就变成了用B-R, R, R-AY

    1.7K22

    SAP GRC 权限合规检查系统

    一、系统概述 SAP GRC权限合规检查系统(简称AMS-R系统)是SAP ERP应用企业进行权限合规检查、违规数据抓取和IT审计的理想工具。...AMS-R系统通过预置的“SOD权责互斥矩阵”和“SAT敏感事务规则”,结合萨班斯404审计法规、中国上市企业审计要求和企业内控制度,帮助用户分析发现SAP ERP系统权限管理中潜在的风险,快速有效的进行权限合规检查及风险识别审计...;依据内置可配的合规模型进行 SAP权限的管理及日常维护,对例外权限进行补偿控制,规避SAP系统权限管理风险。...二、系统原理 AMS-R系统参照GRC(Governance Risk Compliance 风险合规管控)理念,结合企业信息审计要求,依据权责互斥模型,通过预设SOD矩阵,可以快速实施、快速应用、快速见效...三、系统特性 AMS-R产品可选择适合本企业“职责互斥”规则,自动关联公司代码相关信息,预置近万条规则库;可自定义用户关键事务代码,可按需配置的SOD矩阵。

    1.8K00

    【论文笔记】2021-EMNLP-Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking

    总的来说就是,GPT 作为一个生成模型,其生成过程依赖于上一次的生成结果,因此对于第一回合的预测有不利的地方(第一回合没有上一次预测)。...模型 图注意力机制 ​ 这里简要介绍一下本文用到的图注意力机制,每一回合的带权无向图表示为 \mathcal{G}=(\mathcal{V},\mathcal{E}) , 定义一个邻接矩阵 S \in...\R^F , 被集成进特征矩阵 X \in \R^{N\times F} , F 为 输入的特征维度大小。...在图操作后,只使用所得到的域插槽嵌入,因此我们提取输出张量 X^{(L)}_t 的第一个 N_s 项,并将它们收集到一个矩阵 G_t∈R^{N_s×h} 中。...数据集 ​ 实验是在 5 个数据集上进行的: ​ Sim- M 和 Sim- R 分别是电影和餐厅领域的多回合对话数据集,是专门为评估对话状态跟踪模型的 可扩展性 而设计的。

    1.2K30

    超详细解读ORB-SLAM3单目初始化(下篇)

    ,后者利用构建的虚拟相机模型,针对不同相机计算基础矩阵和单应性矩阵,选取最佳的模型来恢复出最开始两帧之间的相对姿态,并进行三角化得到初始地图点。...cv::fisheye::undistortPoints(vPts1,vPts1,K,D,R,K); cv::fisheye::undistortPoints(vPts2,vPts2,K,D,R,K);...将当前帧和参考帧中的特征点坐标进行归一化。...(选择得分较高的矩阵值,单应矩阵H或者基础矩阵F)估计两帧之间的位姿,代码中对应着函数ReconstructH或ReconstructF。...第一是利用基础矩阵F和本质矩阵E的关系 ,计算出四组解。第二是调用的函数CheckRT作用是用R,t来对特征匹配点三角化,并根据三角化结果判断R,t的合法性。

    2.9K23

    简单明了,一文入门视觉SLAM

    [t]×R,其中 [t]× 是反对称矩阵,即定义向量 ?...简记为 Qf = 0 做SVD得到Q = USVT,而最终F的解是V最右的奇异向量(singular vector); 另外,因为E矩阵完全由摄像头外参数(R和t共6个未知参数,但有一个不确定平移尺度量...从E矩阵分解得到R和t 根据视图方向与摄像头中心到3-D点的方向之间夹角可以发现,四个可能中只有情况(a)是合理的解; 确定两个视角的姿态之后,匹配的特征点 x,x’可以重建其 3-D 坐标 X,即三角化...RANSAC的目的是在包含异常点(outlier)的数据集上鲁棒地拟合一个模型,如图 2-12 所示: 1. 随机选择(最小)数据点子集并实例化(instantiate)模型; 2....基于此模型,将所有数据点分类为内点(inlier)或异常点; 3. 迭代重复 1-2 步; 4. 选择最大的内地集,以此重新估计最终模型。 ? RANSAC示意图 ii.

    1.4K21

    CVPR2018 ——(GAN)延时摄影视频的生成

    为了使最终生成的视频具有生动的运动信息,该技术还引入格拉姆矩阵来更加精确地描述运动信息。并且建立了一个大规模的延时摄影视频数据集,并且在这个数据集上面测试了其方法。...为此,引入Gram矩阵对连续帧间的动态变换进行建模。在下图中给出了一些由传统方法和该技术方法生成的示例帧。本次技术模型产生的图像帧比最先进的图像帧更清晰,并且在视觉上几乎和真实的图像帧一样逼真。 ?...上图中,从上往下一次是: VGAN, RNN-GAN,本次技术的第一阶段和第二阶段示例帧结果。 本次还建立了一个大规模的延时视频数据集,称为天空场景,以评估模型的未来预测。...该数据集包括白天、夜幕、星空和极光场景。MD-GAN在这个数据集上进行训练,并根据天空场景的静态图像预测未来的帧。我们可以制作128×128真实感视频,其分辨率远远高于最先进的模型。...以图像x∈R 3×H×W为起始帧,复制T次,得到静态视频X∈R 3×TxH×W。通过三维卷积和三维反卷积层转发X,生成器G1输出T帧的视频Y1∈R 3×TxH×W,即Y1=G1(X)。

    83610

    识别自动驾驶的深度

    此方法不需要训练的基本事实数据集。相反,它们使用图像序列中的连续时间帧来提供训练信号。为了帮助限制学习,使用了姿势估计网络。在输入图像与从姿势网络和深度网络的输出重建的图像之间的差异上训练模型。...这鼓励模型学习尖锐的边缘并消除噪声。 最终损失函数变为: ? [1]中的最终损失函数在每个像素,比例和批次上平均。 结果 作者在包含驱动序列的三个数据集上比较了他们的模型。...通过两个模型,一个对象运动模型和一个自我运动网络(类似于前面几节中描述的姿势网络)来做到这一点。步骤如下: ? Mask R-CNN [2]的样本输出。...图片来自[2] 预训练的遮罩R-CNN [2]用于捕获潜在移动物体的分割。...遮罩过程可提取静态背景,然后提取自我运动转换矩阵,而无需移动对象。来自[3]的方程。 使用步骤3中产生的自我运动转换矩阵,并将其应用于帧-1和帧+1,以获取变形的帧0。

    1.1K10

    ORB-SLAM——a Versatile and Accurate Monocular SLAM System)

    本文算法提出并行计算两个几何模型,一个是面向平面视图的单映矩阵,另一个是面向非平面视图的基础矩阵。然后,采用启发式的方法选择模型,并使用所选的模型从两图像的相对位姿中对地图点云进行重构。...2.并行计算两个模型: 在两个线程上并行计算单应矩阵 H c r H_{cr} Hcr​和基础矩阵 F c r F_{cr} Fcr​ : 在文献[2]中详细解释了基于RANSAC的归一化DLT...为了使两个模型的计算流程尽量一样,将两个模型的迭代循环次数预先设置成一样,每次迭代的特征点数目也预先设置好,基础矩阵是8个特征点对,单映矩阵是4个特征点对。...每次迭代中,我们给每个模型M(H表示单映射,F表示基本矩阵)计算一个分值SM: 其中, d c r 2 d_{cr}^2 dcr2​和 d r c 2 d_{rc}^2 drc2​是帧到帧之间的对称传递误差...我们利用如下强大的启发式进行计算: 如果 R H > 0.45 R_H>0.45 RH​>0.45 , 这表示二维平面和低视差的情况,我们将选择计算单应矩阵。

    81420

    蚂蚁:多模态方向的技术探索

    关于视频-文本预训练方面,我们在 MSRVTT 文本视频检索数据集上使用 r@sum 指标来衡量语义检索算法效果,其中 r@sum 指标将 top1-recall(r@1),top-5 recall (...我们基于以上两种关联数据构建大规模无监督的视频-文本对,并在此数据集上进行预训练。然后将预训练后的模型作为各项下游任务的初始化模型,可以显著提高下游任务的效果。...同时,表格中也揭示了在我们的过滤阶段,将 450 万数据过滤为 350 万时,虽然预训练数据量有所减少,但整体上模型的效果反而有所增强。...还有一些工作是基于深度学习模型,通过基于特征相似度矩阵的方式处理,这种方法将视频是否侵权的问题转化为待检测视频与侵犯版权视频的二分类,即将视频特征整合后,若侵权则标记为标签"1",反之则标记为标签"0"...接下来将详细阐述这两种方法。 首先来介绍 SPD 模块。该模块的核心理念是,在提供候选视频以及查询视频后,将候选视频和查询视频的关键帧的特征进行两两对比,构建出相似性矩阵。

    28510

    BoT-SORT | 多目标跟踪tricks

    跟踪通常包括2个主要部分 目标的定位,主要是预测轨迹边界框和检测边界框之间的IoU 目标的外观模型和解决Re-ID任务 主要通过卡尔曼滤波 KF 预测后续帧的轨迹边界框位置 运动模型和状态估计 将新帧检测与当前轨迹集相关联...这2种方法都被量化为距离,并用于将关联任务作为全局分配问题来解决 大多数SORT-like算法采用卡尔曼滤波器和恒速模型假设作为运动模型。...由于缺乏关于相机运动的额外数据(例如导航、IMU 等)或相机内参,2个相邻帧之间的图像配准是相机刚性运动在图像平面上投影的良好近似。 使用OpenCV的全局运动估计 (GMC) 技术来表示背景运动。...这里先使用RANSAC计算出仿射变换矩阵 A ∈ R 2×3 。 然后使用仿射变换矩阵将预测边界框从k-1帧的坐标系变换到下一帧k的坐标。...M包含A中的scale和rotation部分,T包含translation部分 第k帧补偿前后的状态为(X_hat, P_hat 为补偿后状态),X表示状态向量,P表示KF预测的协方差矩阵 用补偿后状态更新

    2.3K10
    领券