粗看 numpy 和 pandas 后的一点困惑

2020-12-07 15:20:03 +08:00
 Hlianbobo
本人没做过数据分析。粗看了一下《 Python 数据科学手册》《利用 Python 进行数据分析》这两本书中关于 numpy 和 pandas 的介绍。主要想了解一下这两个库能做些什么工作。看过以后形成了如下印象,想听听各位高手的看法。

看起来这两个库就是对矩阵(或表格)数据进行排序,索引,切片,特殊值批量替换(如 NaN,null ),格式转换(如字符串类型的时间数据,转换成时间类型的数据)然后可以根据日期数据进行各种遍历操作。如提取特殊时间段的数据。求指定时间段数据的和,平均值,标准差,各分位数……。数据的转置。批量运算。

总的印象就是我们日常在 excel 里做的工作通过代码加以实现。是这样么??????

当然我不否认通过代码实现在处理批量数据时比如 100 行整数。每行数据都要乘以指定的整数。或者有 100 个 excel 文件要做同样的批处理用代码实现肯定的提高效率。但是这些功能似乎用 sql 或 excel 自带的 vba 应该也可以实现吧(也许不如 python 代码简洁。但是也应该可以实现吧?)

以上是 numpy 和 pandas 的主要作用么?如果是,那么实现的数据处理功能感觉很初级吧,距离“数据科学”似乎还有点远?如果我对 numpy 和 pandas 的印象是错的。那么请各位高手举例指出。例如哪些数据处理是 excel 实现不了或者哪些海量数据的批量处理是 sql 或 vba 实现不了的?
5386 次点击
所在节点    Python
56 条回复
Hlianbobo
2020-12-07 19:56:29 +08:00
@IgniteWhite 请教一下:PyTorch 和 CUDA 之间是怎样一种关系?
foveal
2020-12-07 20:54:58 +08:00
一般 EDA 画图或者建模的最后一步是使用 python 来做,最后一步之前,就希望有 python 包来做数据转换

这个 python 包需要有类似 excel 的功能,还需要能调用很复杂的函数,能快速的运算,pandas 就是应对这样的需求

一个常见的 pandas 操作:groupby().apply()如果用 excel 的话就很复杂
上 G 的数据 excel 处理起来会慢,pandas 就比较快
IgniteWhite
2020-12-07 22:32:56 +08:00
@Hlianbobo 想了解的话知乎上好多专栏都有讲这些

[CUDA 教程] 一、认识 cuda
https://zhuanlan.zhihu.com/p/146431357
以及他的后续介绍

PyTorch 1.7 发布,支持 CUDA 11 、Windows 分布式训练
https://zhuanlan.zhihu.com/p/269885921
机器之心有很多类似的新闻和科普。量子位也是一个不错的账号
jc89898
2020-12-07 22:47:54 +08:00
@Hlianbobo 我就是这行的,这么跟你说吧,“真要找出数据中的规律,并找出数据规律所反映出的问题,进而对未来数据进行预测,并给出业务建议。光会数据清洗,排序,转置,求和,算标准差,中位数,或者做个简单的线性回归是不足以实现上述四个目标的吧。”,任何 pytorch,tensorflow 能做的事,numpy 都能做,只是 cpu 速度慢。而且 mu, sigma, regression 中的学问是很大的,不要小瞧。
jc89898
2020-12-07 22:50:57 +08:00
numpy, pandas 之类的用熟了,效率远超 excel 啥的,而且不用学啥就能掌握 pytorch
tikazyq
2020-12-07 23:12:10 +08:00
vba 效率太低开发难度大,sql 灵活度低且开发难度大,py 啥都可以做而且开发效率高,为啥不用?
tikazyq
2020-12-07 23:15:56 +08:00
其实 numpy 、scipy 、pandas 、matplotlib 、seaborn 、statsmodels 、sklearn 、tensorflow 、pytorch 这些模块只是工具,抛开应用场景只讨论技术等于纸上谈兵。或许楼主的工作经验不多,应该工作没几年,还需要多积累实战经验
futou
2020-12-07 23:34:25 +08:00
思而不学则殆...
你好像认为 numpy 等需要有可以直接复杂数据处理和分析的函数?
实际上,numpy 最常用在数据处理和分析的基础环节
另外,excel+vba 很强,然而我想数据处理后接个网络怎么办,再回到 python ?
GrayXu
2020-12-07 23:46:19 +08:00
没毛病,是有交集的。不过 numpy 更像是个矩阵科学计算库,而 excel 虽然提供这些功能,但更类似于 Pandas 在发挥数据预处理功能。
抛开效率等不谈,你要真用 Excel 做一个 NN 也可以。但没有意义,numpy 之所以被用的多,也就是因为在这个生态中,承担了数据格式这一个任务,你没办法用 torch 、tf 来快速调用 excel 的数据。
另外这和深层用法浅层用法没关系,深度学习、数据科学都不在于会多少 API 。怎么理解和使用算法才是关键的。
dayeye2006199
2020-12-08 07:06:08 +08:00
LZ 的理解是对的,这些工具的用途确实出发点都很简单和单一。

numpy 就是个矩阵操作和预算的库。
pandas 是搞金融的人,写出来专门处理时序类数据变形加工的工具。

但是这个理解不完全,再复杂的东西,也都是基于简单的概念和工具搭建起来的。例如所谓的深度学习,拆解到最底层,就是一堆线性代数里面的矩阵运算。

但不能说,我掌握了矩阵运算,我就掌握了深度学习。我学会了 numpy,我就学会了数据科学。工具取决于使用的方法和人。例如,如果我明白深度学习的原理,完全可以用 excel 作为矩阵运算工具,来搭建一个简单的神经网络。
zone10
2020-12-08 10:25:00 +08:00
Numpy 和 Pandas 能做的 excel 和 vba 确实能做, 但为什么还是有必要用 Python 做数据分析?
首先你如果用 excel 做数据分析, 那么数据源会受限, 而实际工作有很多其他的数据源, 比如 csv, json 等等, 使用 Pandas 可以就处理各种不同的数据源. 同样道理, 你用某个数据库直接处理数据, 那面临多个数据库和换库情况怎么办?而且那些存储过程又臭又长也不好维护. 说回 Numpy 和 Pandas, Numpy 是 Pandas 的底层数据结构, 现在已经成为 Python 的一部分了, 跟其他的库不可同日而语, 前段时间我还看新闻说 Numpy 上了 Nature, 人家顶级的研究都能用, 自己那点业务逻辑有啥不能用的. 不过日常使用应该是用 Pandas 比较多, Pandas 就是在 Numpy 的基础在做一些方便的功能, 我敢说 Pandas 对大部分中小企业都够用了, 哪有那么多大数据, 都是吹水吹出来的.
volvo007
2020-12-08 12:20:41 +08:00
@futou 有海量的 win 自带 api 供调用…… 我真心觉得能掌握这些的是真有时间和毅力……
不过我是不想记那么多 api,而且补全功能又弱,还是投向了 py
zealinux
2020-12-08 13:03:07 +08:00
Excel 全能,Excel 还可以用来画画。
但是只能自己玩,
如果全公司团队依赖这一个 excel 文件,真是要疯掉的。
ttys001
2020-12-08 17:07:39 +08:00
尽管都是和数据处理相关,但 numpy 和 pandas 还是有侧重点的,pd 重心在于导入、清洗、整理,np 是为更后面的机器学习库准备 ndarray,最主要的就是矩阵运算。更后面的 scikit/tensorflow/pytorch 等都是使用的 np 的数据结构。个人使用顺序是 pd->np->matplt->scikit/tf 。
tisswb
2020-12-11 18:07:50 +08:00
计算机视觉方向,numpy 简直不能再香了。
xyjincan
2020-12-14 19:11:33 +08:00
这个数据处理跟数据库内部处理比又有啥优缺点呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/732958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX