小编Mau*_*aus的帖子

sqlite3会压缩数据吗?

我有一个7.4Gb的csv文件.使用python脚本将其转换为sqlite数据库后,输出DB为4.7Gb,约为原始大小的60%.

csv有大约150,000,000行.它有标题:

tkey,ipaddr,healthtime,numconnections,policystatus,activityflag
Run Code Online (Sandbox Code Playgroud)

每一行看起来都像

261846,172.10.28.15,2012-02-03 16:15:00,22,1,1
Run Code Online (Sandbox Code Playgroud)

该脚本使用healthtime将数据拆分为表192表

当我第一次看到这些数字时,我以为我在某个地方犯了错误.如果仅仅将健康时间写入192次而不是150,000,000次的额外效率,我应该期望文件大小的减少有多大?

编辑:我发布这个,我意识到答案.我正在移除大约40%的弦,因此尺寸缩小了40%.

编辑2让我们计算纯文本之间的大小差异:

"261846,172.10.28.15,2012-02-03 16:15:00,22,1,1" 
Run Code Online (Sandbox Code Playgroud)

和数据库条目:

db(261846,'172.10.28.15',22,1,1)
Run Code Online (Sandbox Code Playgroud)

首先,我们以纯文本表示从46个字符删除到26个字符.

剩下的字符是:

"261846,172.10.28.15,22,1,1"
Run Code Online (Sandbox Code Playgroud)

或26个字节.如果每个整数需要以32位(4字节)存储,那么我们有:

12字节(ipaddr)+ 4字节*4(整数字段)= 28字节.

所以看起来转换为整数会使存储效率稍微降低,而我所有的收益都会减少每行中存储的字符数.

python sqlite

25
推荐指数
2
解决办法
3万
查看次数

确保d3数据元素匹配id?

我有一个带有一堆多边形的现有svg.每个多边形都有一个唯一的id,每个id都有一些关联的数据.

我的问题是:如果我做自然d3加入:

d3.selectAll("polygon").data(array_of_data)
Run Code Online (Sandbox Code Playgroud)

反正是否确保与多边形关联的数据元素是正确的?

或者我只需要保持array_of_data与所选多边形的顺序相同的顺序?

d3.js

17
推荐指数
1
解决办法
6169
查看次数

拆分一系列关于熊猫的时间差距?

是否有可能将时间序列分开.例如,假设我们有以下内容:

rng2011 = pd.date_range('1/1/2011', periods=72, freq='H')
rng2012 = pd.date_range('1/1/2012', periods=72, freq='H')
Y = rng2011.union(rng2012)
Run Code Online (Sandbox Code Playgroud)

是否有可能寻找一年或更长时间的差距,并将数据框分开?

我想这会是这样的:

Y.groupby(Y.map(lambda x: x.year))
Run Code Online (Sandbox Code Playgroud)

除了在年份日期拆分,我有兴趣指定间隔间隙而不是行的年份属性.

应用程序是我从gps获得行程日志,但没有描述一次旅行何时结束而另一次旅行开始.我想分成十分钟或更长的间隙.

python pandas

6
推荐指数
1
解决办法
2928
查看次数

GridSearch for Multilabel OneVsRestClassifier?

我正在对多标签数据进行网格搜索,如下所示:

#imports
from sklearn.svm import SVC as classifier
from sklearn.pipeline import Pipeline
from sklearn.decomposition import RandomizedPCA
from sklearn.cross_validation import StratifiedKFold
from sklearn.grid_search import GridSearchCV

#classifier pipeline
clf_pipeline = clf_pipeline = OneVsRestClassifier(
                Pipeline([('reduce_dim', RandomizedPCA()),
                          ('clf', classifier())
                          ]
                         ))

C_range = 10.0 ** np.arange(-2, 9)
gamma_range = 10.0 ** np.arange(-5, 4)
n_components_range = (10, 100, 200)
degree_range = (1, 2, 3, 4)

param_grid = dict(estimator__clf__gamma=gamma_range,
                  estimator__clf__c=c_range,
                  estimator__clf__degree=degree_range,
                  estimator__reduce_dim__n_components=n_components_range)

grid = GridSearchCV(clf_pipeline, param_grid,
                                cv=StratifiedKFold(y=Y, n_folds=3), n_jobs=1,
                                verbose=2)
grid.fit(X, Y)
Run Code Online (Sandbox Code Playgroud)

我看到以下追溯:

/Users/andrewwinterman/Documents/sparks-honey/classifier/lib/python2.7/site-packages/sklearn/grid_search.pyc in fit_grid_point(X, …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

6
推荐指数
1
解决办法
2109
查看次数

更好的单行翻转键和字典值

我写了一个单行来完成这个:

vocab_tag = dict(zip(*reversed(zip(*tag_vocab.items()))))
Run Code Online (Sandbox Code Playgroud)

任何人都可以写一个更易于理解/直接的吗?

python

5
推荐指数
1
解决办法
2327
查看次数

One Big Process或许多小流程的内存使用情况是否更好?

我有一个需要内存的应用程序,它遍历一对数组,处理每个元素组合.目前这个脚本非常需要RAM.它最终使用大约3GB的RAM.

我的问题是:

在一个大型流程中处理每个元素组合是否更节省内存?或者,为每个组合启动一个新的子流程更好.

换句话说,做选项1是否更好:

for i in param_set1:
    for j in paramset2:
        Do_A_Big_Job(i, j)
Run Code Online (Sandbox Code Playgroud)

或选项2:

import subprocess

for i in param_set1:
    for j in paramset2:
        subprocess.call([Do_A_Big_Job_Script, i, j])
Run Code Online (Sandbox Code Playgroud)

"更好",我的意思是"使用更少的RAM".

谢谢!

编辑 我对内存使用情况非常好奇.当进程结束时,UNIX系统是否会释放该内存?对于编写得相当好的脚本,这比python的垃圾收集更有效吗?我没有很多可用的内核,所以我希望多个进程或多或少并行运行.

python unix memory subprocess

5
推荐指数
1
解决办法
148
查看次数

homebrew macvim与python2.7.3支持无法正常工作

我用自制软件安装了macvim,支持python.我的咒语如下:

brew install macvim --override-system-vim
Run Code Online (Sandbox Code Playgroud)

现在当我打开一个python文件时,如果我尝试导入任何东西,我会收到一系列错误.例如,如果我,import re我看到ImportError: no module name re.

我第一次在安装后打开macvim,进入'import site' failed; use -v for traceback我打开macvim的终端.这是在运行我的第一个python命令之后.

这是什么意思,我该如何解决?

python vim homebrew macvim

4
推荐指数
1
解决办法
5564
查看次数

重新连接后,Apache Curator丢失所有手表

我在我的项目中使用Apache Curator。在CuratorFramework失去与ZooKeeper服务器的连接之后,它会自动重新连接,但似乎它失去了我设置的所有手表,并且不再收到任何通知。如果未断开连接并重新启动连接,手表将按预期工作。

这是Curator的错误,还是我做错了什么?设置手表的代码如下:

CuratorFramework framework = CuratorFrameworkFactory.newClient(connectString, SESSION_TIMEOUT_MS, 0, new ExponentialBackoffRetry(CONNECT_TIMEOUT_MS, CONNECT_RETRY_COUNT));
framework.start();
framework.getChildren().usingWatcher(watcher).forPath(path);
Run Code Online (Sandbox Code Playgroud)

谢谢,

apache-zookeeper apache-curator

4
推荐指数
1
解决办法
1229
查看次数

nltk lemmatizer不知道如何处理美国人这个词

如下:

from nltk import WordNetLemmatizer as wnl
wnl().lemmatize("American")
wnl().lemmatize("Americans")
Run Code Online (Sandbox Code Playgroud)

两者都只是回归他们的论点.我希望美国人减少到美国.任何人都知道如何实现这一目标?

我假设我必须修改lemmatizer使用的任何内部字典.它是否正确?谁知道更好的方法?

谢谢!

python nltk lemmatization

2
推荐指数
1
解决办法
2900
查看次数