1
TimePPT 2020-09-28 17:40:04 +08:00 1
如果考量计算效率的话,numpy 在 python 里是王者了
|
2
wuwukai007 2020-09-28 18:54:02 +08:00 via Android 1
是要打包吗,考虑大小
|
3
imn1 OP |
5
wuwukai007 2020-09-28 19:20:30 +08:00 via Android 1
不打包就装一个吗,难道公司内网没有 pip 源不好装?
|
6
imn1 OP @wuwukai007 #4
那我没理解对你说的话 我以为你说项目最后要打包给别人用 @shm7 @TimePPT Numpy 我知道,常用来计算证券,和商业数据分析 只是有些场合,计算很少的,提取数据的情况多 举个例子 有个二维数组,要提取某一列 1/3/5/7 的数据,如果 pandas/numpy 很简单;如果只是 list,要么写个表达式,要么 zip 一次,取出这列再提取 这个二维数组到其他地方提取方式可能不同,所以要原样传递 这些场合后续计算很少,部分只是提取完就 print 了,没有计算,所以不想每个 py 都 import 一把牛刀,或者把 dataframe 作为参数传递,希望中间过程轻量一点,只是处理杀鸡这点小事而已 这只是个例子,还有很多类似场景 我问问有没有我不知道的模块可以做这事,没有的话,我自己弄个类,搞几个闭包写成方法,就不用各个场景都多写一两句 zip/for 这样的重复劳动了 |
7
shm7 2020-09-28 19:59:30 +08:00 via iPhone 1
@imn1 我还是用的太少了,只有 3 年,不太明白 numpy 被称为重的地方在哪。也不理解 2 维数组取 1357 有啥麻烦。
|
8
iConnect 2020-09-28 20:09:34 +08:00 via Android 2
少了 numpy,py 也到不了今天的地位。不要嫌弃 numpy,这是顶梁柱
|
9
imn1 OP @shm7 #7
不难,也不麻烦,能写 例如 a=pandas.DataFrame([[1,1],[1,3],[1,5],[1,7],[1,9]]) a.iloc[[1,3],1]=[2,4] pandas 这句赋值盲写就行,二维 list 就要稍微转一下脑子 我只是希望无脑套用 [1,3],1,懒得想表达式怎么写,如果场景多就每个表达式都要多想一点点,写成闭包以后就可以盲写了 @iConnect #8 不嫌弃,离开 numpy 我恐怕生计都成问题 只是有些场合,象上面这句 a.iloc,可能整个 py 数百行,只有这两行用到 pandas,为了这个赋值不值得,我宁愿多写一两行省下这个 import 的时间和内存 还是那句,如果有轻便的我试试,没有我就另想办法 |
11
minami 2020-09-28 21:32:38 +08:00 1
搜了一下,这个仓库可能满足你的需求,纯 python 实现的 ndarray:wadetb/tinynumpy
|
12
crclz 2020-09-28 21:43:30 +08:00 2
洁癖
|
13
Huelse 2020-09-28 23:28:22 +08:00 1
或者自己用 C 写然后打包成动态库,完全自定义,当然要小心内存问题
|
14
neoblackcap 2020-09-28 23:42:58 +08:00 1
numpy 在实际会用到 blas 的相关实现。很多时候哪怕你认为是读取的操作,实际上可能是当矩阵变换的操作。会有对应的加速的。一般人写不出那样高效的代码。如果你觉得效率没啥所谓,其实自己用 C 写一个也可以。关键还是看你实际的需求
|
15
krixaar 2020-09-29 08:40:08 +08:00 1
@imn1 #6 > 有个二维数组,要提取某一列 1/3/5/7 的数据
换个思路,“有张数据库表,要提取某一字段 1/3/5/7 行的数据” > 不想每个 py 都 import 一把牛刀,或者把 dataframe 作为参数传递,希望中间过程轻量一点 参数只传一个表名够轻量吗 > 想找个轻量一点的模块 标准库 import sqlite3,都不用安装了🤣 Let's CRUD🤣 |
17
IgniteWhite 2020-09-29 18:29:01 +08:00 via iPhone
pandas 基于 numpy
numpy 的 array 都是数字,而且在内存里连续占用。这两点要比 python 自己的 list 轻量多了。你试试看 size,比一比就知道了 |