R语言学习笔记之高效数据操作
一、概要
数据操作是R语言的一大优势,用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作,包括排序、更新、分组汇总等。R数据操作包:data.table和tidyfst两个扩展包。
data.table是当前R中处理数据最快的工具,可以实现快速的数据汇总、连接、删除、分组计算等操作,具有稳定、速度快、省内存、特性丰富、语法简洁等特点。由于其函数语法结构相对来说较为抽象,对于初学者而言往往需要花更多的时间来掌握。
tidyfst包应运而生,用以提高data.table代码的可读性和可维护性。tidyfst包参考了tidyverse体系的语法结构,让用户能够见名知义;同时,其底层由data.table代码构成,因此实现速度非常快。对于较为复杂的data.table操作,tidyfst包提供了简便的调用函数进行实现。
资料来源:《机器学习全解(R语言版)》 黄天元 2024年7月出版
二、数据读写
在data.table包中可以使用fread和fwrite函数对csv格式的文件进行读写。
如果需要保存规模较大的数据,可以使用tidyfst包的import_fst和export_fst函数来进行数据读写,其数据保存格式为以fst为扩展名的二进制文件。它的特点就是数据高保真、读写速度快和压缩效果好,因此保存下来的fst文件往往要比csv格式占用内存更小。
library(pacman)
p_load(tidyfst,data.table)fwrite(iris,"D:/iris.csv")
ir=fread("D:/iris.csv")export_fst(iris,"D:/iris.fst")
ir=import_fst("D:/iris.fst")
三、筛选列
1、选择需要的列
library(pacman)
p_load(tidyfst,data.table)
ir=as.data.table(iris)
ir# 选取上面构造的数据框ir中的第1、3和4列,以下两种写法等价
ir %>% select_dt(1,3,4) #tidyfst
ir[,c(1,3,4)] # data.table
2、选择连续的列
可以使用“:”符号:
# 选择1到3列
ir %>% select_dt(1:3)
ir[,1:3]
3、根据变量名称选择单列
# 选择Sepal.Length列
ir %>% select_dt(Sepal.Length)
ir[,"Sepal.Length"]
4、根据变量名称选择多列
变量名称之间需要用逗号隔开
# 选择Sepal.Length和Petal.Length两列
ir %>% select_dt(Sepal.Length,Petal.Length)
ir[,c("Sepal.Length","Petal.Length")]
5、根据正则表达式筛选列
# 选择列名称包含“Sepal”的列
ir %>% select_dt("Sepal")
ir[,.SD,.SDcols=patterns("Sepal")]
6、利用特殊函数选择列
# 选择数据类型为因子的列
ir %>% select_dt(is.factor)
ir[,.SD,.SDcols = is.factor]
7、排除列
排除一些列,则可以在原来基础上加上减号来实现:
# 排除Sepal.Length和Petal.Length这两列
ir %>% select_dt(-Sepal.Length,-Petal.Length)
ir[,-c("Sepal.Length","Petal.Length")]
# 排除因子列
ir %>% select_dt(-is.factor)
ir[,.SD,.SDcols = -is.factor]
四、筛选行
1、根据单个条件筛选行
# 筛选出Sepal.Length大于7的条目
ir %>% filter_dt(Sepal.Length>7)
ir[Sepal.Length>7]
2、多条件筛选行
如果要附加多个条件,那么条件之间可以利用逻辑运算符&(与)、|(或)和!(非)进行修饰和连接。
# 筛选Species列不为versicolor且Sepal.Length大于6的条目
ir %>% filter_dt(Species != "versicolor" & Sepal.Length > 6)
ir[Species != "versicolor" & Sepal.Length > 6]
3、tidyfst包中现成的筛选函数
slice_max_dt | 获得Sepal.Length最大的10个条目 ir %>% slice_max_dt(Sepal.Length,10) | |
slice_min_dt | 获得Sepal.Length最小的10个条目 ir %>% slice_min_dt(Sepal.Length,10) | |
slice_sample_dt | 随机选择10个条目 ir %>% slice_sample_dt(10) | |
slice_dt | 根据条目的位置来进行筛选。获得ir数据框的第100行 | |
ir %>% slice_dt(100) | ir[100] | |
选择多行,则可以使用数值向量。选出第100行到第105行 | ||
ir %>% slice_dt(100:105) | ir[100:105] | |
unique | 去重 ir %>% unique() |
五、更新
更新是指对数据框的一列或多列进行修饰,或根据已有列构造新列。
mutate_dt | 新增常数列、修改列 |
mutate_when | 按照一定的条件进行列的更新 |
mutate_vars | 对多个列同时进行原位修饰 |
ir %>% mutate_dt(one=1)
ir %>% mutate_dt(Sepal.Length=Sepal.Length+1)
ir %>% mutate_when(Sepal.Width=0.2,one=1)
ir %>% mutate_vars("^Petal",function(x) x-1)
1、新增一列名为one的常数列,其所有数值均为1
2、让Sepal.Length列的所有数值加1
3、在Petal.Width等于0.2的时候新增名为one的常数列
4、让列名称以Petal开头的列都减去1
六、排序
对数据框进行排序有两种方法,一种是按照行进行排序,另一种是按照列进行排序。
arrange_dt | 按列排序 |
relocate_dt | 调整列的位置 |
ir %>% arrange_dt(Sepal.Length)
ir[order(Sepal.Length)]ir %>% arrange_dt(Sepal.Length,Sepal.Width)
ir[order(Sepal.Length,Sepal.Width)]ir %>% arrange_dt(-Sepal.Length)
ir[order(-Sepal.Length)]
1、按照Sepal.Length列从小到大进行排列
多列:先按照Sepal.Length列进行排列,然后再按照Sepal.Width列进行排列
2、从大到小进行排列,在原来的变量之前加入负号
3、调整列的位置
把Species列放到第一列:
把Sepal.Length列放到最后一列:
七、汇总
汇总的过程是用较少信息表征较多信息的方法。
tidyfst包中使用summarise_dt函数来对数据框中的列进行汇总。
八、分组计算
分组计算就是根据分组结果来对每一个组进行相同的操作。
在tidyfst包中,很多函数都具有by参数,by用来指定分组的变量。
如果需要对多个变量进行分组,那么by参数的指定方式有以下几种:
●在by参数中放入字符串,变量之间以逗号分隔(如by="vs,am");
●在by参数中放入字符向量,字符是分组的列名称(如by=c("vs","am"));
●在by参数中放入一个指定分组变量的列表(如by=list(vs,am))。
九、列的重命名
tidyfst包中使用rename_dt函数来对列进行重命名。对多个列进行重命名,只要用逗号隔开即可。
十、多表连接
连接是指根据表格所包含的共同信息来对多个表格进行合并的过程。基本的连接可以分为内连接、全连接、左连接和右连接。
内连接又称为自然连接,该操作会从结果表中删除与其他被连接表中没有匹配行的所有行,只保留两个表格中都包含的数据条目。
全连接会保留所有表格的所有信息。
左连接则仅会保证左边(即第一个出现的)表格的信息会被完全保留,右边(第二个)表格的信息只有与第一个表格的信息匹配的才能够保留。
右连接是左连接的逆运算,即完全保留第二个表格的信息,而第一个表格中只有与第二个表格的信息匹配的内容才能保留。
十一、长宽转换
tidyfst包中的longer_dt函数实现将“宽数据”转换成“长数据”。
tidyfst包中的wider_dt函数实现“长数据”转成“宽数据”。
十二、集合运算
tidyfst包函数 | data.table包函数 | |
---|---|---|
交集 | intersect_dt | fintersect |
并集 | union_dt | funion |
差集 | setdiff_dt | fsetdiff |
注意:tidyfst包会自动地把任意数据框转化为data.table格式。
十三、缺失值处理
1、删除缺失记录
na.omit函数可以删掉任意包含缺失值的行。
tidyfst包的drop_na_dt函数可以实现删除某一列中存在缺失值的条目。
2、缺失值填充
tidyfst包中的replace_na_dt函数实现填充指定的值。
tidyfst包的fill_na_dt函数实现将上一个观测值作为下面缺失的填充值。
tidyfst包中的impute_dt函数实现使用非缺失数值的均值、中位数或众数来对缺失值进行填充。
十四、列表列的应用
列表列(list column)是R语言中相对较新的一个概念,它能够根据分组把一整块数据集成在一起成为一列,而这个列的数据类型为列表(list)。在tidyfst包中可以使用nest_dt函数进行实现。
相关文章:
R语言学习笔记之高效数据操作
一、概要 数据操作是R语言的一大优势,用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作,包括排序、更新、分组汇总等。R数据操作包:data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具,可以实现快…...
高阶C语言|数组名的深度解析(数组名结合sizeof与strlen的详解)
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C语言感兴…...
Vue3 v-bind 和 v-model 对比
1. 基本概念 1.1 v-bind 单向数据绑定从父组件向子组件传递数据简写形式为 : 1.2 v-model 双向数据绑定父子组件数据同步本质是 v-bind 和 v-on 的语法糖 2. 基础用法对比 2.1 表单元素绑定 <!-- v-bind 示例 --> <template><input :value"text&quo…...
科家多功能美发梳:科技赋能,重塑秀发新生
在繁忙的都市生活中,头皮健康与秀发养护成为了现代人不可忽视的日常课题。近日,科家电动按摩梳以其卓越的性能和创新设计,赢得了广大消费者的青睐。这款集科技与美学于一身的美发梳,不仅搭载了2亿负离子、6000次/分钟的声波振动等前沿技术,更融入了650nm聚能环红光与415nm强劲蓝…...
systemverilog中的force,release和assign
1 assign assign 语句用于为 wire 类型的信号提供连续赋值。它建立了一个驱动源,根据右侧表达式的值持续驱动 wire 信号。 module Example;wire a, b, c;assign c a & b; endmodule 2 force force 用于强制将一个信号的值设定为某个特定值,会覆盖…...
9【如何面对他人学习和生活中的刁难】
我们在学习的过程中,会遇到很多来自于他人的刁难与嘲讽,如果处理不好,这会大大影响我们的心情,从而影响学习的效率 我建议,如果你学习或生活中也遇到了类似的问题,不要去生气,更不要发生冲突&a…...
新项目传到git步骤
1.首先创建远程仓库,创建一个空白项目,即可生成一个克隆URL,可以是http也可以是SSH,copy下这个地址 2.找到项目的本机目录,进入根目录,打开git bash here命令行 3.初始化: git init 4.关联远程地址: git remote add origin "远程仓库的URL" 5.查看关联 git re…...
docker搭建redis集群(三主三从)
本篇文章不包含理论解释,直接开始集群(三主三从)搭建 环境 centos7 docker 26.1.4 redis latest (7.4.2) 服务器搭建以及环境配置 请查看本系列前几篇博客 默认已搭建好三个虚拟机并安装配置好docker 相关博客…...
DDD架构实战第七讲总结:分层模型和代码组织
云架构师系列课程之DDD架构实战第七讲总结:分层模型和代码组织 一、引言 在前几讲中,我们介绍了领域驱动设计(DDD)的基本构造块和生命周期模型中的聚合。本讲将重点讨论如何将这些构造块和代码组织起来,探讨分层架构和六边形模型,以及如何组织代码结构。 二、工厂和资…...
LabVIEW太阳能照明监控系统
在公共照明领域,传统的电力照明系统存在高能耗和维护不便等问题。利用LabVIEW开发太阳能照明监控系统,通过智能控制和实时监测,提高能源利用效率,降低维护成本,实现照明系统的可持续发展。 项目背景 随着能源危机…...
C# 结构体
总目录 前言 在 C# 编程中,结构体(struct)是一种非常重要的数据结构,它为我们提供了一种轻量级的存储和操作数据的方式。本教程将带你深入了解结构体的概念、特点、使用方法,以及一些使用结构体的最佳实践。 一、什么…...
C++小病毒-1.0勒索(更新次数:1)
内容供学习使用,不得转卖,代码复制后请1小时内删除,此代码会危害计算机安全,谨慎操作 在C20环境下,并在虚拟机里运行此代码!,病毒带来后果自负! 使用时请删除在main()里的注释,并修改位置至C:\\(看我代码注释)//可以改成WIN Main() #include <iostream> #i…...
RabbitMQ---面试题
常见面试题 1.MQ的作用及应用场景 类似问题:项目什么情况下用到了MQ,为什么要用MQ MQ的主要应用场景,消息队列的应用场景,为什么说消息队列可以削峰 首先MQ是一种用来接收和转发消息的队列,常见的应用常见如下&…...
CSS中相对定位和绝对定位详解
文章目录 CSS中相对定位和绝对定位详解一、引言二、相对定位1、相对定位的概念1.1、代码示例 三、绝对定位1、绝对定位的概念1.1、代码示例 四、相对定位与绝对定位的区别五、使用示例六、总结 CSS中相对定位和绝对定位详解 一、引言 在CSS布局中,定位是一种强大的…...
【深度学习基础】多层感知机 | 权重衰减
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…...
[cg] 使用snapgragon 对UE5.3抓帧
最近想要抓opengl 的api,renderdoc在起应用时会闪退(具体原因还不知道),试了下snapgraon, 还是可以的 官网需要注册登录后下载,官网路径:Developer | Qualcomm 为了方便贴上已经下载好的exe安装包&#x…...
Java 集合框架介绍
Java学习资料 Java学习资料 Java学习资料 在 Java 编程中,集合框架是一个强大且常用的工具,它为存储和操作一组对象提供了统一的体系结构。通过集合框架,我们能够高效地管理数据,提升程序的灵活性和可维护性。 一、集合框架的概…...
【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!
没关系的,大家都会做错选择,会 莫名其妙掉眼泪,走在路上会突然崩溃, 但这并不影响我们去看看晚霞, 再次爱上这个世界。 面朝大海 ,春暖花开! about meReviewLife about me 现在我是一名24级计算机类的…...
windows11关闭系统更新详细操作步骤
文章目录 1.打开注册表2.修改注册表内容2.1 新建文件2.2 修改值 3.修改设置 1.打开注册表 winR输入regedit(如下图所示) 2.修改注册表内容 进HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 2.1 新建文件 右侧界面右键即可 2.2 修改值 重命名为如下…...
医学图像分析工具09.1:Brainstorm安装教程
1. 安装前准备 **官方安装包和数据:**https://neuroimage.usc.edu/bst/download.php **官方安装教程:**https://neuroimage.usc.edu/brainstorm/Installation Matlab 版本要求: 有 Matlab: R2009b (7.9) 或更高版本没有 Matlab&…...
蚁群算法 (Ant Colony Optimization) 算法详解及案例分析
蚁群算法 (Ant Colony Optimization) 算法详解及案例分析 目录 蚁群算法 (Ant Colony Optimization) 算法详解及案例分析1. 引言2. 蚁群算法 (ACO) 算法原理2.1 蚂蚁觅食行为2.2 算法步骤2.3 数学公式3. 蚁群算法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案例1: 旅行商…...
鸿蒙next 自定义日历组件
效果图预览 20250124-113957 使用说明 1.选择日期左右箭头,实现每月日历切换,示例中超出当前月份,禁止进入下一月,可在代码更改 2.日历中显示当前选择的日期,选中的日期颜色可自定义 3.日历中可展示历史记录作为数据…...
Android BitmapShader简洁实现马赛克,Kotlin(二)
Android BitmapShader简洁实现马赛克,Kotlin(二) 这一篇 Android BitmapShader简洁实现马赛克,Kotlin(一)-CSDN博客 遗留一个问题,xml定义的MyView为wrap_content的宽高,如果改成其…...
MATLAB编写遗传算法【Genetic Algorithm(GA)】求解函数最大值
一、遗传算法基础知识 来自B站视频的笔记: 【超容易理解】手把手逐句带你解读并实现遗传算法的MATLAB编程(结合理论基础)_哔哩哔哩_bilibili 1、遗传算法 使用“适者生存”的原则,在遗传算法的每一代中,…...
remove和delete应用场景
"Remove" 和 "delete" 都有“移除、去除”的意思,但它们在使用时有一些细微的区别,通常根据上下文来决定使用哪一个。以下是它们的主要区别: 1. Remove "Remove" 是一个相对通用的词,指的是从某个…...
Redis 详解
简介 Redis 的全称是 Remote Dictionary Server,它是一个基于内存的 NoSQL(非关系型)数据库,数据以 键值对 存储,支持各种复杂的数据结构 为什么会出现 Redis? Redis 的出现是为了弥补传统数据库在高性能…...
亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘
解决PyCharm下PyEMD安装报错 PyEMD安装报错解决方案 PyEMD安装报错 PyCharm下通过右键自动安装PyEMD后运行报错ModuleNotFoundError: No module named ‘PyEMD’ 解决方案 通过PyCharm IDE python package搜索EMD-signal,选择版本后点击“install”执行安装...
Java 设计模式 二 单例模式 (Singleton Pattern)
单例模式 (Singleton Pattern) 是一种常见的设计模式,属于创建型模式。它的核心思想是确保一个类只有一个实例,并提供一个全局访问点来获取该实例。通常用于那些需要全局控制的场景,比如配置管理、日志系统、数据库连接池等。 1. 单例模式的…...
golang网络编程
socket编程 socket图解 Socket是BSD UNIX的进程通信机制,通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。Socket可以理解为TCP/IP网络的API,它定义了许多函数或例程,程序员可以用它们来开发TCP/IP网…...
kotlin内联函数——takeIf和takeUnless
1.takeIf 当对一个对象调用takeIf时,如果对象满足给定的判断条件,则返回该对象;否则,返回null。因此,takeIf是对单个对象进行过滤的函数。例如, class User {var name: String? nullvar age 99fun set…...
计算机网络 (54)系统安全:防火墙与入侵检测
前言 计算机网络系统安全是确保网络通信和数据不受未经授权访问、泄露、破坏或篡改的关键。防火墙和入侵检测系统(IDS)是维护网络系统安全的两大核心组件。 一、防火墙 定义与功能 防火墙是一种用来加强网络之间访问控制的特殊网络互联设备,它…...
第38周:猫狗识别 (Tensorflow实战第八周)
目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 输出 二、数据预处理 2.1 加载数据 2.2 再次检查数据 2.3 配置数据集 2.4 可视化数据 三、构建VGG-16网络 3.1 VGG-16网络介绍 3.2 搭建VGG-16模型 四、编译 五、训练模型 六、模型评估 七、预测 总结 前言…...
【力扣Hot 100】矩阵1
矩阵置零:1. 开两个数组判断该行/该列是否有0;2. 用第0行/第0列分别判断该列/该行是否有0 螺旋矩阵:记录方向,一直按某方向前进,遇到障碍方向就变一下 1. 矩阵置零 给定一个 *m* x *n* 的矩阵,如果一个元…...
量子编程语言:Qiskit 与 Cirq
在量子计算的领域,开发者已经可以使用一些专门为量子计算设计的编程语言和框架。其中,Qiskit 和 Cirq 是两个非常流行的选择,它们为不同的量子计算机提供编程接口,帮助开发者理解量子电路的设计和执行。 1. Qiskit Qiskit 是 IBM…...
leetcode 124. 二叉树中的最大路径和
题目:124. 二叉树中的最大路径和 - 力扣(LeetCode) 定义一个节点的“最大单向路径和”是single,single有以下几种情况: 只有该节点该节点左儿子的single该节点右儿子的single 设答案是节点 node 为根节点࿰…...
程序员转型测试:解锁漏洞挖掘新旅程
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 程序…...
基于Springboot用axiospost请求接收字符串参数为null的解决方案
问题 今天在用前端 post 请求后端时发现,由于是以 Json对象的形式传输的,后端用两个字符串形参无法获取到对应的参数值 前端代码如下: axios.post(http://localhost:8083/test/postParams,{a: 1, b:2} ,{Content-Type: application/jso…...
# AI绘图中的Embedding、CLIP、Flux中的Clip与LCM SDXL加速生成解析
AI绘图中的Embedding、CLIP、Flux中的Clip与LCM SDXL加速生成解析 在现代AI绘图和深度学习中,涉及了多个复杂的概念和技术,这些技术在图像生成、训练加速以及多模态学习等方面起着至关重要的作用。在这篇博客中,我们将讨论几个关键概念&…...
警企联动齐发力、共筑反诈“防护墙”
2025年1月10日是第五个中国人民警察节,南通移动联合南通公安反诈中心,深入社区商圈,开展防范电信网络诈骗宣传活动,进一步增强广大人民群众的反诈意识和能力,全力守护好群众的“钱袋子”。 当日,活动现场一大早就呈现出一片忙碌景象,工作人员支起摊位,将各类精心制作的反诈宣传…...
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求 Node.js 的 http 模块是 Node.js 核心模块之一,它允许你创建 HTTP 服务器和客户端。以下是一些关键知识点和代码示例: 1. 创建 HTTP 服务器 使用 http.createServer() 方法可以创建…...
Alibaba Spring Cloud 十七 Sentinel熔断降级
概述 在微服务架构中,熔断与降级是保证系统稳定性的重要机制,能有效防止故障蔓延或雪崩效应。当某个服务出现异常、延迟过高或错误率过高时,触发熔断保护,将该服务“隔离”一段时间,避免影响整体系统的吞吐和可用性。 …...
linux——网络基础
文章目录 目录 文章目录 踏入网络世界:探索 Linux 网络的无垠天地 一、网络发展 早期单机处理模式 网络发展的需求催生 网络发展后的优势对比 二、局域网or广域网 典型局域网架构 广域网连接多个局域网 二者关系 三、协议 语言层与汉语协议 通信设备层与电话机协议 …...
Spring Boot 集成 WebClient 实战教程 实现同步、异步请求处理以及响应式编程、响应式流、响应式Mono
该项目介绍springboot集成WebClient 实现服务的请求操作 示例中演示了,如何配置WebClient的请求头,请求参数等相关参数,实现同步、异步请求处理以及响应式编程、响应式流、响应式Mono。 为什么使用WebClient 不用RestTemplate 在 Spring Framework 5.0 及更高版本中,Res…...
健身房项目 Uniapp+若依Vue3版搭建!!
本次系统实现主要负责前端前端功能的实现。其中系统前端主要分为三大部分,首页,教练列表页,我的页面。 首页 首页的实现效果如图 1.会员卡组件 首页的Vip会员卡部分,团课活动的DataPicker,团课选择都采用了组件化封…...
(2)STM32 USB设备开发-USB虚拟串口
例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为USB虚拟串口教程,没有知识,全是实操,按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的,如果代码中出现一些外设的…...
ubuntu上python setup.py install报错:error: expected initializer before ‘__s128’
问题场景:安装torchsparse时候执行python setup.py install 报错: /usr/include/linux/types.h:12:27: error: expected initializer before ‘__s128’12 | typedef __signed__ __int128 __s128 __attribute__((aligned(16)));| …...
解锁.NET Standard库:从0到1的创建与打包秘籍
一、引言 在当今的软件开发领域,跨平台开发已成为一种趋势。随着不同操作系统和设备的多样化,开发人员需要确保他们的代码能够在多个平台上运行,以满足更广泛的用户需求。.NET Standard 库应运而生,它定义了一组公共 API…...
Mac 查看 Java SDK 和 Android SDK 的路径
1. Mac 如何查看 JavaSDK的路径 /usr/libexec/java_home -V2. Mac 如何查看 Android SDK 的路径 在 Android Studio 中按 cmd,打开设置,然后如下方式,第三步如果有值就是第三步的信息。 第三步如果没有值,点开Edit,值在下方&…...
6. 马科维茨资产组合模型+政策意图AI金融智能体(DeepSeek-V3)增强方案(理论+Python实战)
目录 0. 承前1. 幻方量化 & DeepSeek1.1 What is 幻方量化1.2 What is DeepSeek 2. 重写AI金融智能体函数3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对上一篇文章,链接: 5. 马科维茨资产组合模型政策意图AI金融智能体(Qwen-Max)增…...
freeswtch目录下modules.conf各个模块的介绍【freeswitch版本1.6.8】
应用模块(applications) mod_abstraction: 为其他模块提供抽象层,有助于简化模块开发,让开发者能在统一框架下开发新功能,减少与底层系统的直接交互,提高代码可移植性和可维护性。 mod_av&#…...