数学建模社区-数学中国
标题:
哪些 Python 库让你相见恨晚?
[打印本页]
作者:
杨利霞
时间:
2020-4-25 15:28
标题:
哪些 Python 库让你相见恨晚?
: g F, r/ q7 i9 @. c4 [- ~
哪些 Python 库让你相见恨晚?
4 z. Q: w" B5 [- p8 E+ s9 v
' J2 d( B- R! O1 }& x
Python的灵活性和易用性不仅体现在大家都知道的语法优雅简洁上,还因为它拥有非常庞大且强大的库。这些库可以用于数据清理、数据操作、可视化、构建模型甚至模型部署,所以这也是为什么Python在开发者中这么受欢迎的原因。
' _# i: {. t8 J" x- \! P9 W8 f6 B+ a
% s# k0 X& x# ? Q5 T
那么今天,我们就来盘一盘其中8个好用的库:
$ u) q/ C% T0 D# D0 A* X9 p5 n
$ p* S# z4 N: ^/ B2 J9 O6 i
1、TensorFlow
% {( K2 R. `( ]4 B8 O# j1 }1 ?# J
2 B/ {# j$ g% n% C' }
2020-4-25 15:24 上传
下载附件
(24.26 KB)
0 ~7 A7 }4 M# m1 t
( i% j8 D5 O' {* J7 C: |' b+ R
什么是TensorFlow?
. m. [# r3 ?7 T/ D
该库是由Google与Brain Team合作开发的。TensorFlow几乎在每个Google应用程序中用于机器学习。
4 `+ e& B/ r7 |
p2 @' W6 l% Z( ?& C
TensorFlow的工作方式类似于编写涉及大量张量操作的新算法的计算库。由于神经网络可以很容易地表示为计算图形,因此它们可以使用TensorFlow作为Tensors上的一系列操作来实现。此外,张量是表示数据的N维矩阵。
' b9 G$ g6 r! ~& m
0 _/ c$ s6 E/ C. o% M: r& j
TensorFlow的特点
" Q- b X: e# H
TensorFlow针对速度进行了优化,它利用XLA等技术实现快速线性代数运算。
3 z$ o2 {- A" {2 D' K
# m$ Q, l" T0 Q2 j' e W1 M( G+ B
使用TensorFlow,我们可以轻松地可视化图形的每个部分,这在使用Numpy或SciKit时不是一个选项。
, C& N8 L% Y& u/ p( O
) J4 ?3 d- r, Z* R
其中一个非常重要的Tensorflow功能是它的可操作性非常灵活,这意味着它具有模块化,并且对于您想要独立的部分,它为您提供了这一选择。
0 I3 @, d; W" h
6 `0 O( P7 r6 T: X8 N6 F! h. |' ]5 A
它可以在CPU和GPU上轻松训练,用于分布式计算。
U& o' c: }) X2 b+ x- M8 W
- y% }, n7 b l9 `# T5 V
TensorFlow提供流水线操作,从某种意义上说,您可以训练多个神经网络和多个GPU,这使得模型在大规模系统上非常高效。已经有一大批软件工程师不断致力于稳定性改进。而且它是开源的,所以只要有互联网连接,任何人都可以使用它。
' |6 e; O, l" x! L" J n: \
/ e" l- \2 o6 F' L4 K- V
2、NumPy
9 h7 u" V, k6 w* _ M# m0 o
8 Y& b& \7 U: _( m* m
2020-4-25 15:25 上传
下载附件
(39.44 KB)
4 o3 t, j2 |+ r
8 K ^# f$ [" r P* ]
什么是Numpy?
1 g3 r+ I2 j+ W. J* t, D# }# j
Numpy被认为是Python中最受欢迎的机器学习库之一。TensorFlow和其他库在内部使用Numpy在Tensors上执行多个操作。数组接口是Numpy的最佳和最重要的功能。
+ s/ w5 Y& ]5 l* l8 _
. H5 `; V" p/ ]- _; P: u
Numpy的特点
, ?. U2 G# h3 o p" A& B
Numpy非常具有交互性且易于使用;使复杂的数学实现变得非常简单;使编码变得简单易懂并且理解概念很容易;广泛使用,因此有很多开源贡献。
7 @) R: r3 J* r$ ^4 X- c1 J
3 [* T9 N7 S3 R( e/ Y9 @: a
3、Scikit-Learn
4 h& X3 o, A* J" w1 x& a
2020-4-25 15:25 上传
下载附件
(48.97 KB)
h0 M7 n5 o t1 B3 d4 @* o. F. b
* b5 L) F- u8 y; V$ S3 |- I/ e; u
$ |" P6 G& Q6 q5 D# k$ n, a1 v
什么是Scikit-Learn?
1 }% S+ A% z; W! u/ P" B* O
它是一个与NumPy和SciPy相关联的Python库。它被认为是处理复杂数据的最佳库之一。
2 z' x g; I+ f( r4 |2 E1 M
; C9 g4 |! b6 Q( d7 y3 h" R& ]0 F
这个库中有很多变化。一种修改是交叉验证功能,可以使用多个指标。物流回归和最近邻居等许多培训方法都得到了一些改进。
4 X) h% x* }6 D7 @8 `- R4 \0 |. [
% B% s d4 V/ h$ t! _' c3 q
Scikit-Learn的特点
* k- F& b: C; |' t
有多种方法可以检查监督模型对看不见的数据的准确性;无监督学习算法:同样,在提供中有大量的算法 - 从聚类,因子分析和主成分分析到无监督神经网络;用于从图像和文本中提取特征。
" e% m+ F0 B+ n1 c) E* a- B2 M7 ]
1 s6 r* x, c8 Z$ A, v% n
4、Pandas
; q; @' x+ |# e2 n, r: k
2020-4-25 15:25 上传
下载附件
(18.69 KB)
6 f: P+ p& p( S) t* y
N8 ^1 z5 Z5 i/ u! ?$ c2 ~
什么是Pandas?
; S& w. P3 `! w0 v8 u: b/ }
在数据操作和数据分析方面,Pandas绝无敌手。这个名称来源于术语“面板数据”,“面板数据”是一个计量经济学术语,指的是包含同一个人在多个时间段内的观察结果的数据集。
/ U4 b h( N8 e @0 A) A
5 _7 y! ?" j- E) F/ W% c+ Q4 Q
Pandas的特点:
" w! I$ ]1 U$ R
数据集连接和合并
6 C' K! r1 a1 g1 B
删除和插入数据结构列
2 U5 S7 p# T2 a7 J. ?' x! j2 u- T
数据过滤
: }0 E( u' i2 _( Y
重塑数据集
# M! Y/ \ @1 X0 }: b( V5 C
使用DataFrame对象来操作数据等
) G1 A: ?. K, N# l- ]
5、Seaborn
* s8 ^9 N6 b) m
2020-4-25 15:25 上传
下载附件
(189.7 KB)
+ f$ r! L5 k/ r& x4 }* W4 Z3 A( O. Y
什么是Seaborn?
$ I3 }; `$ \" W6 ^2 o2 h
Seaborn是基于matplotlib产生的一个模块,专攻于统计可视化,可以和pandas进行无缝连接,使初学者更容易上手。相对于matplotlib,Seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系。
J. M' ~) e. H6 J
7 z; {* a% T# z* p s0 n% H' r
# G$ |3 P& x% _( R; n1 H8 C: |+ q
4 {0 b0 X- X, G8 t2 |* [6 ^# K
Seaborn 的特点:
9 k* f5 C+ x+ }1 x& @
作为一个面向数据集的API,可用于查验多个变量之间的关系
0 ?! k5 s3 u& ]
便于查看复杂数据集的整体结构
' V/ g. F- \2 M: X
用于选择显示数据中模式的调色板的工具
( C8 e- \0 k7 h
6、HoloViews
% I: I' D; l! T
2020-4-25 15:26 上传
下载附件
(129.6 KB)
" W7 G1 o$ d. |3 o2 {4 O! L' L
什么是HoloViews
( z, u$ {# h3 N0 ~4 J) J
HoloViews可以用非常少的代码完成数据分析和可视化,除了默认的matplotlib后端外,还添加了一个Bokeh后端。
8 [ b2 _% O- J# x4 P. ]; O
! M9 x6 G! R/ a3 X2 c
Bokeh提供了一个强大的平台,通过结合Bokeh提供的交互式小部件,可以使用HTML5 canvas和WebGL快速生成交互性和高维可视化,非常适合于数据的交互式探索。
5 H1 P3 a0 w: d c# y# Z/ I1 K
$ q/ _/ \3 D2 h9 U
2 T; v- K1 h# m! ?. v# R- P7 U% K
. s4 f1 A- U) f- D. S8 S; H" D/ _
7、PyTorch
6 c. k! @# \) {7 |6 A" C' s6 v
2020-4-25 15:27 上传
下载附件
(21.3 KB)
+ h# z3 [: ~3 F6 o/ O
" c6 {, ?, c# L! Q6 e, y) t
( I5 x1 L, y. d g; h& M% d% N) L
什么是PyTorch?
3 X- _/ U5 o& Y7 |/ z1 ]& \
PyTorch是最大的机器学习库,允许开发人员通过GPU加速执行张量计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch还提供丰富的API,用于解决与神经网络相关的应用问题。
8 g, ?. z y5 j! |9 c. I2 x" u
1 M/ _! Y( R. ~! \
这个机器学习库基于Torch,它是一个用C语言实现的开源机器库,带有Lua中的包装器。
* [! g6 o: u( I' |3 h- z
# B: ]& l' e, c6 v) m4 }7 f
它于2017年推出,自成立以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。
% m! }$ J( ^, A7 A% y
/ b- K" ]) O, K& }5 i' W1 q
PyTorch的特点
8 i9 k: o4 O$ m- u' ~. j5 Z
新的混合前端在急切模式下提供易用性和灵活性,同时无缝转换到图形模式,以便在C ++运行时环境中实现速度,优化和功能。
; {- r4 A3 ~9 W/ ]4 y
6 A, j) n7 K9 E1 Y2 ?
通过利用对Python和C ++可访问的集合操作和对等通信的异步执行的本机支持,优化研究和生产中的性能。
6 V9 J( I2 i; u4 g* v" b& [
+ w) P6 _7 N( Q, c3 V
PyTorch不是Python绑定到单片C ++框架。它是为了深入集成到Python中而构建的,因此它可以与流行的库和Cython和Numba等软件包一起使用。
* l9 {1 m3 x' e/ O) m) r) }
2 Q& Q O3 \* w, i/ F7 F2 g! }- G% ~/ m
一个活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统,用于扩展PyTorch并支持从计算机视觉到强化学习等领域的开发。
3 w- W& H( S: p. D' Q
) l. `. v) S6 q/ s% \" j0 d
8、Keras
+ x* u4 t" z) P: w
( T8 T3 B2 e- H6 X" L A+ W
2020-4-25 15:28 上传
下载附件
(26.44 KB)
; R+ ^7 D+ d$ f5 }- `
) q% V. i2 ?# ]8 q1 S/ f
什么是Keras?
' r6 C+ G# ]* c3 x* F
Keras被认为是Python中最酷的机器学习库之一。它提供了一种更容易表达神经网络的机制。Keras还提供了一些用于编译模型,处理数据集,图形可视化等的最佳工具。
9 ?& d+ @3 F# Y4 k) [% G
5 A* Y9 S F% V: \4 Q
在后端,Keras在内部使用Theano或TensorFlow。也可以使用一些最流行的神经网络,如CNTK。当我们将其与其他机器学习库进行比较时,Keras相对较慢,因为它通过使用后端基础设施创建计算图,然后利用它来执行操作。
/ A1 n# M7 J( B8 @% [* X$ m/ |
6 n& s' R# ]" w* q% s. `
Keras的特点
9 A8 ~/ m/ P* x2 `
它在CPU和GPU上都能顺利运行。Keras几乎支持神经网络的所有模型 - 完全连接,卷积,汇集,循环,嵌入等。此外,这些模型可以组合起来构建更复杂的模型。Keras具有模块化特性,具有令人难以置信的表现力,灵活性,适合创新研究。
4 y; \/ B1 A: U' b* W
————————————————
# f, `. e% x% M- X
版权声明:本文为CSDN博主「九章算法」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
; d* M0 \* |7 @. Z8 j K6 {& o: u
原文链接:https://blog.csdn.net/JiuZhang_ninechapter/article/details/104481814
( D0 p" R' M5 ?
6 @- Z$ C- I- @. M- ?8 L
d# {7 O7 l4 f. R, `. z, c6 d
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5