[Python/Java] 数据科学与人工智能开源库
本文如无特别说明,均为
python语言的库,反之,会有特定语言的说明。
- Python凭借其易学性、可扩展性和丰富的库生态,在人工智能(AI)领域占据主导地位。
- 本文将深入探讨Python在AI各个方向上常用的库,涵盖一整套工具,以帮助开发者构建尖端的AI解决方案。
Python在AI领域强大的库生态系统使开发者能够快速有效地构建各种复杂的解决方案。
这些库涉及机器学习、计算机视觉、自然语言处理、语音处理、数据科学和强化学习等各种方向。
凭借Python的易用性和可扩展性,AI开发者可以专注于创新,而不是重新发明轮子。
1 数据科学基础库
Numpy
NumPy: 用于科学计算和线性代数的库。提供一维至多维数组的数据结构
- https://numpy.org/
- 数据结构。NumPy 主要提供了多维数组对象(ndarray),用于处理数值型数据,这些数组可以是一维、二维或多维的。NumPy 数组是高效的数据结构,支持各种数学运算和操作。
- 用途。NumPy 适用于数值计算和数组操作,特别是对大型数据集的处理,提供了各种数学函数和线性代数操作。
- 索引。NumPy 数组没有标签,只能通过位置来访问元素。
- 小结:适用领域。NumPy 更适用于科学计算、机器学习和数值模拟等领域。
- 推荐文献
Pandas
Pandas: 用于数据操作和分析的库,支持数据框和时间序列。pandas基于 numpy,提供 series 和 data frame 两个数据结构。
起源
- Pandas诞生于2008年,它的开发者是
Wes McKinney,一个量化金融分析工程师。
因为疲于应付繁杂的财务数据,Wes McKinney便自学Python,并开发了Pandas。大神就是这么任性,没有,就创造。
为什么叫作Pandas,其实这是“Python data analysis”的简写,同时也衍生自计量经济学术语“panel data”(面板数据)。
所以说,Pandas的诞生是为了分析金融财务数据,当然现在它已经应用在各个领域了。
Pandas能做什么呢?
它可以帮助你任意探索数据,对数据进行读取、导入、导出、连接、合并、分组、插入、拆分、透视、索引、切分、转换等,以及可视化展示、复杂统计、数据库交互、web爬取等。
同时,Pandas还可以使用复杂的自定义函数处理数据,并与numpy、matplotlib、sklearn、pyspark、sklearn等众多科学计算库交互。
Pandas有一个伟大的目标,即成为任何语言中可用的最强大、最灵活的开源数据分析工具。
数据结构
- 数据结构。Pandas 则建立在 NumPy 之上,提供了两个主要的数据结构:Series 和 DataFrame。
Series是一维标记数组,类似于 NumPy 的一维数组,但它带有索引,可以存储任意数据类型。DataFrame是二维标记数据结构,类似于电子表格或 SQL 表,它由多个 Series 对象组成,每个 Series 共享一个索引。
用途
- 用途。Pandas 更适合于数据处理和数据分析,提供了丰富的功能和灵活的工具,可以轻松地处理时间序列数据、缺失数据、数据合并等操作,常用于数据清洗、转换、分析和可视化。
索引
- 索引。Pandas 的 Series 和 DataFrame 对象都有索引,可以通过标签或位置来访问数据。
- 小结:适用领域。Pandas 更适用于数据处理、数据分析和数据建模等领域。
numpy与pandas的联系
- 联系
- Pandas 是建立在 NumPy 数组之上的,因此可以直接操作 NumPy 数组,并且 Pandas 的许多操作都是通过调用 NumPy 函数实现的。
- Pandas 的数据结构(Series 和 DataFrame)在内部使用了 NumPy 数组,因此可以直接从 NumPy 数组构建 Pandas 对象,也可以将 Pandas 对象转换为 NumPy 数组进行处理。
- 数据交互
- Pandas 和 NumPy 可以相互转换数据,可以将 Pandas 的 Series 或 DataFrame 转换为 NumPy 数组;
反之亦然,这使得两者可以无缝地集成在一起,共同用于数据处理和分析。
- 小结
Pandas 和 NumPy 可以相互转换数据,可以将 Pandas 的 Series 或 DataFrame 转换为 NumPy 数组;
反之亦然,这使得两者可以无缝地集成在一起,共同用于数据处理和分析。
推荐文献
SciPy
SciPy: 提供高级数学、优化和信号处理例程的库。
Matplotlib
Matplotlib: 用于创建和操作静态、动画和交互式可视化的库。
Seaborn
Seaborn: 基于Matplotlib构建的库,提供了高级统计可视化功能。
2 机器学习框架
scikit-learn
scikit-learn: 广泛使用的机器学习库,提供各种分类、回归和聚类算法。
- 推荐文献
XGBoost
XGBoost: 高效的可扩展性梯度提升算法,用于构建强大的决策树模型。
3 深度学习&强化学习框架
深度学习
深度学习框架(神经网络/图计算框架)
pytorch 【主流】
- pytorch
TensorFlow
- TensorFlow
Keras
- Keras: 构建于TensorFlow之上的高级API,简化了深度学习模型的开发。
强化学习
强化学习
-
Gym: 由OpenAI开发的用于强化学习研究的环境集合。 -
Stable Baselines3: 基于TensorFlow的强化学习算法库。 -
Ray RLlib: 用于分布式强化学习的库,提供多种算法和工具。 -
Dopamine: 谷歌开发的库,用于强化学习研究和生产环境。 -
OpenAI Baselines: OpenAI开发的用于强化学习基准测试的库。
4 自然语言处理
NLTK
NLTK: 领先的自然语言处理(NLP)工具包,用于分词、词性标注和语义分析。
SpaCy
spaCy: 高性能NLP库,提供语言模型、词向量和训练管道。
Gensim
+ Gensim: 用于主题建模、文本相似性和文档聚类的NLP库。
- https://github.com/piskvorky/gensim
一款开源的 Python 自然语言处理工具包,主要用于文本处理和文本分析。
它提供了丰富的功能,包括词向量模型、主题建模、文本相似度计算等。
其中,最为人熟知的功能之一是文本主题建模,可以帮助用户从大量文本数据中发现隐藏的语义结构和主题。
- 推荐文献
文本主题建模原理、LDA算法 / 使用 Gensim 进行文本主题建模 / 高级技术和应用(主题建模(Topic Modeling)/Word2Vec/Doc2Vec)
Hugging Face Transformers
Hugging Face Transformers: 提供预训练模型和工具,用于各种NLP任务,包括文本生成、机器翻译和问答。
TextBlob
TextBlob: 用于文本情感分析和情感分析的简单易用的库。
jieba
jieba:分词工具
https://github.com/fxsjy/jieba
https://pypi.org/project/jieba/
snownlp
snownlp:
- https://github.com/isnowfy/snownlp
- https://pypi.org/project/snownlp/
一个 python 写的类库,可以方便的处理中文文本内容,是受到了 TextBlob 的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库。
且和 TextBlob 不同的是,这里没有用 NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。
注意,本程序都是处理的 unicode 编码,所以使用时请自行 decode 成 unicode。
主要功能有:
- 中文分词(Character-Based Generative Model)
- 词性标注(TnT 3-gram 隐马)
- 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
- 文本分类(Naive Bayes)
- 转换成拼音(Trie树实现的最大匹配)
- 繁体转简体(Trie树实现的最大匹配)
- 提取文本关键词(TextRank算法)
- 提取文本摘要(TextRank算法)
- tf,idf
- Tokenization(分割成句子)
- 文本相似(BM25)
- 支持python3
pip install snownlp
hanlp
hanlp:
- https://www.hanlp.com/semantics/dashboard/index
- 支持语言: Java、Python
一个面向生产环境的多语种自然语言处理工具包,它基于PyTorch和TensorFlow 2.x双引擎,目标是普及落地最前沿的NLP技术
无论您是专家还是初学者,HanLP都可以让您能够轻松快速的构建、处理和“理解”大量文本的AI应用程序
4 计算机视觉
OpenCV: 广泛使用的图像处理库,提供图像操作、特征提取和计算机视觉算法。
-
Pillow: 处理图像和像素操作的Python成像库。 -
PyTorch Vision: 与PyTorch集成的计算机视觉库,提供常见模型和预训练权重。 -
imgaug: 用于图像数据扩充的库,生成合成图像以提高模型鲁棒性。
-
Albumentations: 另一个图像数据扩充库,提供多种变换和增强。
5 语音处理
-
Librosa: 用于音频和音乐处理的库,提供广泛的声音分析功能。 -
SpeechRecognition: 支持语音识别和语音转文本的库。 -
PyAudio: 用于音频输入和输出的跨平台库。 -
Wave: 用于读取和写入Wave音频文件的库。 -
PySpeech: 用于语音合成和文本转语音的库。
U 其他AI方向
-
PyTorch Lightning: 用于管理深度学习模型训练和评估的框架。 -
Prefect: 用于构建和编排数据管道和机器学习工作流的库。 -
Modin: 用于大规模数据分析的扩展Pandas库。 -
Dask: 用于分布式计算和并行处理的库。
K 其他非ai的库
网络请求/爬虫
requests
https://docs.python-requests.org/en/latest/index.html
https://github.com/requests/requests
https://www.runoob.com/python3/python-requests.html
Y 推荐文献
-
人工智能学习路线 - 阿里云
- 天池 - 阿里云
Slogan: 最前沿的AI赛题和课程,走在技术前线
https://tianchi.aliyun.com/
- 魔搭社区 - 阿里云
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!
https://www.modelscope.cn/home
X 参考文献
亮点:java 调用 python
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号