用于数据科学家和数据工程师的Python库列表
介绍一些用于数据分析、数据处理和机器学习等方面非常方便的Python库。
为什么选择 Python?
如果进行统计或机器学习,也可以选择R。R是一种优秀的语言,可以进行数据处理、汇总和统计处理,并且仅凭语言标准功能就可以完成很多工作。它还拥有丰富的机器学习库,是一个强有力的选择。相比较R,Python在周边生态系统的完善上更加优秀。Python的生态系统不仅限于数据科学领域,还可将经过NumPy和Pandas处理的数据用于基于Django的完整Web应用程序中。
安装库集合
大部分列举的库都可以通过Anaconda一键安装。
数据处理
NumPy -> 数值Python
NumPy是一个用于高效进行数值计算的库。这里以一维数组为例,但也支持多维数组。它可以快速进行向量和矩阵计算。
In [1]: import numpy as np # NumPy のインポート
In [2]: arr = np.asarray([n for n in range(10)]) # ベクトルの作成
In [3]: arr # 出力
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [4]: arr * 10 # データの加工
Out[4]: array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])
NumPy 是一种用于数值计算的库。
大熊猫
Pandas是一种扩展了NumPy的库,具有在机器学习的前处理中必不可少的功能,如数据加载和缺失值处理。它有一个名为DataFrame的对象,可以方便地进行数据处理和合并。类似于R中的data.frame。
In [1]: import pandas as pd # Pandas のインポート
In [2]: df = pd.DataFrame({ # データフレームの作成
...: 'A': [n for n in range(5)],
...: 'B': ['male', 'male', 'female', 'female', 'male'],
...: 'C': [0.3, 0.4, 1.2, 100.5, -20.0]
...: })
In [3]: df
Out[3]:
A B C
0 0 male 0.3
1 1 male 0.4
2 2 female 1.2
3 3 female 100.5
4 4 male -20.0
In [4]: df.describe() # 基本統計量の出力
Out[4]:
A C
count 5.000000 5.000000
mean 2.000000 16.480000
std 1.581139 47.812101
min 0.000000 -20.000000
25% 1.000000 0.300000
50% 2.000000 0.400000
75% 3.000000 1.200000
max 4.000000 100.500000
In [5]: df[df['B'] == 'female'] # サブセットの呼び出し
Out[5]:
A B C
2 2 female 1.2
3 3 female 100.5
Python数据分析库 — pandas:Python数据分析库
报告,可视化
朱庇特
Jupyter Notebook是Python的执行环境,可以用作数据探索、数据处理和统计分析的编码环境,它能记录代码的内容和输出结果。此外,还可以将其输出为报告或幻灯片的形式。
项目Jupyter | 首页
图像绘制。
matplotlib是一个用于绘制图表的库。它支持条形图、散点图、直方图等各种类型的图表。
Matplotlib(绘图库):Python绘图 —— Matplotlib 2.0.2 文档
Plotly是一种数据可视化工具。
plotly可以绘制比matplotlib更丰富且具有互动性的图形。您还可以在plot.ly上共享所创建的图形。
Python绘图库,Plotly
消息传递、流式处理
卡夫卡-Python
Kafka-Python是一个名副其实的Python客户端,用于连接Apache Kafka。
from kafka import KafkaConsumer
import json
consumer = KafkaConsumer('topic', bootstrap_servers='localhost:9092')
for msg in consumer:
data = json.loads(msg.value.decode())
print(data)
PySpark can be paraphrased in Chinese as “PySpark 可以”.
Spark和Kafka已经成为必不可少的大数据工具。存在着一个名为MLlib的机器学习库。
Python编程指南- Spark 0.9.0文档
机器学习
scikit-learn 机器学习库
scikit-learn是一個機器學習的函式庫。它不僅支持流行的神經網絡,還可以使用其他算法。此外,它還提供了處理機器學習所需的訓練數據和驗證數據的功能,如分割和交叉驗證以及網格搜索等。這是一個非常實用的函式庫,可以解決一些棘手的問題。如果你想學習機器學習函式庫,首先就從這個開始吧。
scikit-learn:Python中的机器学习 – scikit-learn 0.18.2文档
TensorFlow: TensorFlow
你是否熟悉深度学习库?
TensorFlow
TensorFlow(张量流)
Keras: 凯拉斯
Keras是对TensorFlow、CNTK和Theano等框架的封装。
Keras 文档
推荐的书籍
奥ライリージャパン – データ分析の初歩をPythonで学ぶ
这本书是由Pandas的作者所写的。你可以学习到Pandas的使用方法和数据分析技巧。它还涵盖了NumPy、matplotlib等周边库。
O’Reilly日本 – Python機械学習入門
这本书是由scikit-learn的作者编写的。可以学习如何使用scikit-learn和机器学习所需的工程知识。
直接翻译为中文:“跳出 Python”
如果你不仅仅满足于在Pandas中操纵数据或调整机器学习库,那么你可能需要跳出Python的生态系统。数据的世界是深不可测且广阔的,工程师们需要涵盖更广泛的范围来支持数据科学家。具体来说,掌握分布式处理基础设施(如Hadoop、Spark、Apex)以及全托管数据仓库(如BigQuery、TreasureData)等,将会扩大你的活跃场景。
-
- ストリーム処理で文章内にある単語の出現頻度をカウントする(Apache Apex) – 駄文型
- fluentdコンテナをDockerで立ててRailsのログをTreasureData by IDCFに保存する – 駄文型