1
czfy 2020-12-07 15:27:12 +08:00
pandas 其中还有一个作用是各种 GLM 及变种的模型检验,类似的还有 R 以及各类统计软件( SPSS/STATA/SAS )也能做,这类基本上是统计的事情,研发是很少涉及的,当然你要说 excel 能不能做?也不是完全不能 ,但肯定没有 pandas 这类工具方便
numpy 用来做机器学习,我就没听说过 excel 可以用来做机器学习了 |
2
murmur 2020-12-07 15:27:19 +08:00 2
大体上结论没错,但是你有点看低 excel,excel 在一些人手里是当 BI 用得,excel 本身也有一堆数据处理功能,power pivot,不只是你看得那些个函数
真要说为什么不用 excel,大概一是要付费,二是总归要依靠 excel,没法拆出来部署,深度开发还是独立组件方便 |
3
zscself 2020-12-07 15:28:02 +08:00
我觉得你自己实践一下立马就明白了
|
4
liprais 2020-12-07 15:35:45 +08:00 via iPhone
站在岸边看是学不会游泳的
|
5
necomancer 2020-12-07 15:41:39 +08:00
例如哪些数据处理是 excel 实现不了或者哪些海量数据的批量处理是 sql 或 vba 实现不了的?
完全没有,毕竟 python 和 excel+vba 都是图灵完备的。 |
6
echowuhao 2020-12-07 15:43:00 +08:00 via Android
假如你又几个 G 的数据 要做各种运算 Excel 咋办
楼主用过 spss 之类的软件理论上 Excel 也都能做 |
7
Hlianbobo OP @murmur 谢谢回复。如果 numpy 和 pandas 真的就是主要实现那些初级数据处理功能。那这些功能距离数据科学或数据分析还很远呢。
真要找出数据中的规律,并找出数据规律所反映出的问题,进而对未来数据进行预测,并给出业务建议。光会数据清洗,排序,转置,求和,算标准差,中位数,或者做个简单的线性回归是不足以实现上述四个目标的吧。 那么真正做“数据科学”“数据分析”相关工作的人,实现上述四个目标过程中真正发挥核心作用的库是什么库呢? |
8
imn1 2020-12-07 15:59:47 +08:00 1
你看到的是浅层用法
1.质不同,浅层用法如提取等等当然和其他工具不相伯仲,深度计算呢,例如图片每个像素 2.量不同,10 万条数据试试?现在 10 万条还只能叫小数据呢 sql 你算算行列式?例如两个行列式相乘 数据分析最简单的是交叉分析,基本就是 sql 的用法,但进一步的数学模型,例如神经网络,sql 不能做吧 简单讲,部分数据参与计算的,例如行或列,sql 等是足够的,但全体数据一起参与计算的,例如图片的行列像素,每个 cell 都是平等的,这种计算就需要在内存划出一块进行,自然就需要一个相关的处理模块 隔壁有一帖:数据结构重要还是算法重要 做业务、数据结构,没有 numpy 等等也能做,但做算法,尤其是核心算法,如果没有这种科学计算类型的模块,基本就是小刀砍大树,不知何年何月可以完成 |
9
Hlianbobo OP @echowuhao 几个 G 的数据用数据库+sql 语言是不是也可以实现 pandas 和 numpy 的那些功能?另外,pandas 和 numpy 处理几个 G 的数据跑起来是不是也会很慢?
都没用过。想听听你的评价。 |
10
echowuhao 2020-12-07 16:04:09 +08:00 via Android
|
11
Hlianbobo OP @imn1 谢谢回复。你提到的一些 sql 做不了的例如:神经网络行列式相乘。numpy 和 pandas 是可以单独完成上述工作?还是需要其他库配合才能完成?
确实如你所说,我翻那两本书有大量篇幅是介绍 numpy 和 pandas 的浅层用法的。不知道有没有关于这两个库深层用法的书推荐? |
12
echowuhao 2020-12-07 16:12:39 +08:00 via Android
|
13
imn1 2020-12-07 16:18:07 +08:00
@Hlianbobo #11
你看的书里面的是基础,还是要懂的,高级计算技巧也是在这些基础上扩展出来的 深层用法没必要先看书,搜一些文章看看用途,有个感知就好哦,实际用到再去找文献,因为算法决定怎么用 就像学武功,一招一式可以看书学,但没有书教你实战怎么打的,因为实战是招式组合出来的,可能有些技巧,例如对付对手的某个招式怎么破拆,但不会有书写着对付另一个武功是怎么破解的 |
14
tfdetang 2020-12-07 16:22:26 +08:00
先说 numpy, 算是 python 数据科学的基石了。除了上文中说到的切片,索引等,还可以高效执行各种矩阵运算。理论上你可以只用 numpy 实现一个简单的深度学习框架。实际上现有的机器学习框架数据类型也都兼容 numpy 数据类型。
pandas 也是基于 numpy 的一个应用。 你确认你说的那些用 sql 和 excel 很容易实现吗?基于日期序列进行数据统计、聚合(按周,按工作日,按季度)。 更何况你可以自己写各种 python 函数直接 apply 到数据表上。开发时间起码比 sql 什么的少一倍。 |
15
yzbythesea 2020-12-07 16:29:55 +08:00
@Hlianbobo
numpy 和 pandas 主要都是做 data/feature engineering,所以和 excel 有很多类似的地方 但是我们选这两个,更多的是因为 python 有很好的机器学习大环境啊。比如很多机器学习模型的库 python 都可以调( sklearn,scipy ); 代码共享和审阅完美和 git 融合;代码的 CI/CD 也可以走一般代码的流程;你模型用 python 写好,程序员也看得懂,可以很快改成生产环境的代码。这些都是 excel 不具备的。当然性能也是一个需求,毕竟工业界机器学习的数据量都是特别大的,100G,1TB 都遇到过。 |
16
la2la 2020-12-07 16:31:43 +08:00 1
抛开场景谈技术,感觉没有什么意义。
|
17
Hlianbobo OP @yzbythesea 谢谢回复。可以这样理解么?numpy 和 pandas 只是对数据做粗加工。真正做数据分析的是 sklearn,scipy 。
|
18
yy77 2020-12-07 16:35:51 +08:00
这二个都是其他库要依赖的基础库。比如 numpy 的 array 和 pandas 的 dataframe 。不懂这 2 个的用法,在学习其他的框架时设计到这 2 个的知识就会觉得有点不理解。
|
19
yalin 2020-12-07 16:35:52 +08:00
数据入库前处理
|
20
yzbythesea 2020-12-07 16:47:11 +08:00
@Hlianbobo 其实 numpy 和 pandas 也做到了数据分析( excel 也做到了),比如他们都挖掘出了海量数据背后的特征,然后这些清理好的特征,可以用来做进一步数据分析或者机器学习。
|
22
princelai 2020-12-07 16:55:26 +08:00 3
你说的基本都是对的但是有点狭隘,知道为什么现在机器学习、科学计算和数据分析大部分都用 python 这种比较慢的脚本语言当接口吗,因为生态好,除了 np 和 pd,scipy,sklearn,statsmodels,matplotlib,seaborn 都基于 numpy,pytorch 的 tensor 也和 np.array 基本一致,以上这些,excel,SQL,R,julia 目前甚至未来都是做不到的。
|
23
wuwukai007 2020-12-07 17:06:16 +08:00
pandas 计算移动平均线
df.rolling(15).mean() sql 卒, numpy 计算数组拟合函数 np.polyfit(x, y, 1)。 excel 卒, pandas 计算 后 N 天减前 N 天值 df.diff(N) sql,卒 |
24
pandachow 2020-12-07 17:16:23 +08:00
这就是数据科学啊…
|
25
Zait 2020-12-07 17:34:48 +08:00
excel 可不可以? 当然可以,excel 用到飞起一样很值钱。其实用纸和笔一样能算
为什么不用 excel ? 量变引起质变。另外生产环境总不能部署个 excel 吧。。。 |
26
Tony042 2020-12-07 17:45:28 +08:00
@imn1 额,提一个层主说的不太准确的地方,两个行列式相乘,我估计层主想说的是两个矩阵相乘吧,行列式是一个标量,计算行列式本身还算复杂,两个行列式相乘就只是两个数相乘。然后补充一下,我个人觉得,numpy 主要是用来做科学计算吧,底层做了大量优化,比如把大矩阵相乘优化到了 N^2.7 复杂度。
|
27
liprais 2020-12-07 17:46:16 +08:00 1
|
28
zxyangyu 2020-12-07 17:53:06 +08:00
虽然确实只是 pandas 、numpy 浅显的部分,不过看了一圈回答,我还是想聊聊关于数据科学。
算标准差,中位数,或者做个简单的线性回归这些方法只是工具,况且这种工作完全是机械化的,已经有库实现了比如 pandas_profiling,甚至于自动建模工具 H2O,把这些机械的工作当成数据科学就太想当然了。 我认为数据科学重要的是分析,是挖掘数据价值。交易量突然下跌的原因,业务适合什么预测模型,目标客户和实际用户是否一致,对这些问题给出有数据理论支撑有说服力的答案才是体现你价值的关键。 你可以把 pandas 、numpy 理解成各种各样的 web 框架,只是将你从繁琐的底层协议里解放出来的工具,你总不能说我用了一个旧一点,性能差点的框架满足了业务,我就不是 web 开发了吧,excel 同理。 |
29
binxin 2020-12-07 18:19:35 +08:00
就我遇到实际情况而言:
1. 假如某个数据我只整理分析一次,pandas 效率被 excel 吊打。 2. 假如老是要做重复 /类似的整理分析,花点时间写脚本就有收益。 |
30
liuzhaowei55 2020-12-07 18:24:30 +08:00 via Android
毕竟只是个工具,你没有感受到他的魅力可能是因为还没有遇到合适的场景。
|
31
shm7 2020-12-07 18:32:18 +08:00 via iPhone
这两本书你可能没认真看。否则里面会有解释书干嘛的。有个词语叫 EDA 。
|
32
574402766 2020-12-07 18:37:11 +08:00
我觉得有一点:numpy 和 pandas 能直接在 python 里用,而 excel 不能。
|
33
jccg90 2020-12-07 18:39:57 +08:00
numpy 和 pandas 和 excle 或者 sql 的区别,主要是性能
各种矩阵操作很复杂,但是使用矩阵操作,可以更好的利用 cpu 或者 gpu,并行化程度更高 这对于大数据来说是非常重要的。。。数据的量级一上去,有些事情 excel 就搞不定了 |
34
IgniteWhite 2020-12-07 18:44:21 +08:00 via iPhone
我的应用场景:科研作图,每天有一堆同样类型的数据,同样的拟合过程,同样的作图需求。
用 origin pro (别提 excel 了,非线性拟合缺很多东西),我已经弄好模版了,但还是要手动导入数据,手动去掉数据文件头部的仪器参数行,再点一堆按钮做拟合,虽然也有模版可以创建但还是很麻烦,作出来的图要调线的粗细,图例位置等等。 用 numpy 加 matplotlib,用 jupyter 做 IDE:用任意一台电脑,打开网页版的 jupyterlab 上传数据文件。你只需要把数据文件按照自己的规则命名,我写好的 python 代码就会 parse 文件名来决定曲线簇的图例,用 regex 自动去掉参数行,作出来的图很精美。这一切,只需要点个运行的快捷键,不到半分钟就自动搞定了。 |
35
IgniteWhite 2020-12-07 18:47:21 +08:00 via iPhone 1
@IgniteWhite 补充一下非线性回归这个事,强大的非线性回归性能,或者说矩阵处理性能是机器学习的基石。你不用就不说了,但凡是用机器学习,如果用 VBA 脚本在 excel 里搞,怕是不方便吧
|
37
IgniteWhite 2020-12-07 18:51:03 +08:00 via iPhone
英国用 excel 做 covid19 数据分析,怎么着,算错人了。原因是 excel 里存的数据太多,文件太大,出问题了。于是他们分开成几个小点的文件解决了问题。你说 excel 这不是惹笑话嘛。
|
38
tairan2006 2020-12-07 18:51:31 +08:00
excel 能处理的数据量有限。。不然玩啥大数据
|
39
hello2060 2020-12-07 18:55:35 +08:00
我没有实际经验,我只在 dataquest 上过一个月的课,学了 numpy pandas 的一些基本,我的想发和你差不多。基本上输入就是格式化好的 csv, 用 python 来操作。
具体的数据科学该怎么做,我想你是不是该去 kaggle 看看。 |
40
IgniteWhite 2020-12-07 19:06:37 +08:00 via iPhone 1
|
41
Hlianbobo OP @IgniteWhite 请教一下:PyTorch 和 CUDA 之间是怎样一种关系?
|
42
foveal 2020-12-07 20:54:58 +08:00 1
一般 EDA 画图或者建模的最后一步是使用 python 来做,最后一步之前,就希望有 python 包来做数据转换
这个 python 包需要有类似 excel 的功能,还需要能调用很复杂的函数,能快速的运算,pandas 就是应对这样的需求 一个常见的 pandas 操作:groupby().apply()如果用 excel 的话就很复杂 上 G 的数据 excel 处理起来会慢,pandas 就比较快 |
43
IgniteWhite 2020-12-07 22:32:56 +08:00 1
@Hlianbobo 想了解的话知乎上好多专栏都有讲这些
[CUDA 教程] 一、认识 cuda https://zhuanlan.zhihu.com/p/146431357 以及他的后续介绍 PyTorch 1.7 发布,支持 CUDA 11 、Windows 分布式训练 https://zhuanlan.zhihu.com/p/269885921 机器之心有很多类似的新闻和科普。量子位也是一个不错的账号 |
44
jc89898 2020-12-07 22:47:54 +08:00
@Hlianbobo 我就是这行的,这么跟你说吧,“真要找出数据中的规律,并找出数据规律所反映出的问题,进而对未来数据进行预测,并给出业务建议。光会数据清洗,排序,转置,求和,算标准差,中位数,或者做个简单的线性回归是不足以实现上述四个目标的吧。”,任何 pytorch,tensorflow 能做的事,numpy 都能做,只是 cpu 速度慢。而且 mu, sigma, regression 中的学问是很大的,不要小瞧。
|
45
jc89898 2020-12-07 22:50:57 +08:00
numpy, pandas 之类的用熟了,效率远超 excel 啥的,而且不用学啥就能掌握 pytorch
|
46
tikazyq 2020-12-07 23:12:10 +08:00
vba 效率太低开发难度大,sql 灵活度低且开发难度大,py 啥都可以做而且开发效率高,为啥不用?
|
47
tikazyq 2020-12-07 23:15:56 +08:00
其实 numpy 、scipy 、pandas 、matplotlib 、seaborn 、statsmodels 、sklearn 、tensorflow 、pytorch 这些模块只是工具,抛开应用场景只讨论技术等于纸上谈兵。或许楼主的工作经验不多,应该工作没几年,还需要多积累实战经验
|
48
futou 2020-12-07 23:34:25 +08:00
思而不学则殆...
你好像认为 numpy 等需要有可以直接复杂数据处理和分析的函数? 实际上,numpy 最常用在数据处理和分析的基础环节 另外,excel+vba 很强,然而我想数据处理后接个网络怎么办,再回到 python ? |
49
GrayXu 2020-12-07 23:46:19 +08:00
没毛病,是有交集的。不过 numpy 更像是个矩阵科学计算库,而 excel 虽然提供这些功能,但更类似于 Pandas 在发挥数据预处理功能。
抛开效率等不谈,你要真用 Excel 做一个 NN 也可以。但没有意义,numpy 之所以被用的多,也就是因为在这个生态中,承担了数据格式这一个任务,你没办法用 torch 、tf 来快速调用 excel 的数据。 另外这和深层用法浅层用法没关系,深度学习、数据科学都不在于会多少 API 。怎么理解和使用算法才是关键的。 |
50
dayeye2006199 2020-12-08 07:06:08 +08:00 1
LZ 的理解是对的,这些工具的用途确实出发点都很简单和单一。
numpy 就是个矩阵操作和预算的库。 pandas 是搞金融的人,写出来专门处理时序类数据变形加工的工具。 但是这个理解不完全,再复杂的东西,也都是基于简单的概念和工具搭建起来的。例如所谓的深度学习,拆解到最底层,就是一堆线性代数里面的矩阵运算。 但不能说,我掌握了矩阵运算,我就掌握了深度学习。我学会了 numpy,我就学会了数据科学。工具取决于使用的方法和人。例如,如果我明白深度学习的原理,完全可以用 excel 作为矩阵运算工具,来搭建一个简单的神经网络。 |
51
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 对大部分中小企业都够用了, 哪有那么多大数据, 都是吹水吹出来的. |
52
volvo007 2020-12-08 12:20:41 +08:00
@futou 有海量的 win 自带 api 供调用…… 我真心觉得能掌握这些的是真有时间和毅力……
不过我是不想记那么多 api,而且补全功能又弱,还是投向了 py |
53
zealinux 2020-12-08 13:03:07 +08:00
Excel 全能,Excel 还可以用来画画。
但是只能自己玩, 如果全公司团队依赖这一个 excel 文件,真是要疯掉的。 |
54
ttys001 2020-12-08 17:07:39 +08:00 1
尽管都是和数据处理相关,但 numpy 和 pandas 还是有侧重点的,pd 重心在于导入、清洗、整理,np 是为更后面的机器学习库准备 ndarray,最主要的就是矩阵运算。更后面的 scikit/tensorflow/pytorch 等都是使用的 np 的数据结构。个人使用顺序是 pd->np->matplt->scikit/tf 。
|
55
tisswb 2020-12-11 18:07:50 +08:00
计算机视觉方向,numpy 简直不能再香了。
|
56
xyjincan 2020-12-14 19:11:33 +08:00 via Android
这个数据处理跟数据库内部处理比又有啥优缺点呢
|