我不得不用另一个字符(我任意选择@)替换文件中的所有空字节,并且非常惊讶,tr '\00' '@'大约是速度的1/4 gzip:
$ pv < lawl | gzip > /dev/null
^C13MiB 0:00:04 [28.5MiB/s] [====> ] 17% ETA 0:00:18
$ pv < lawl | tr '\00' '@' > /dev/null
^C58MiB 0:00:08 [7.28MiB/s] [==> ] 9% ETA 0:01:20
Run Code Online (Sandbox Code Playgroud)
我的真实数据文件是3GB gzip压缩,耗时50分钟tr,我实际上需要在许多这样的文件上执行此操作,因此这不是一个完全学术问题.请注意,从磁盘读取(这里pv是一个相当快的SSD),或者,在任何一种情况下都不是瓶颈; 双方gzip并tr使用100%的CPU,并且cat速度要快得多:
$ pv < lawl | cat > /dev/null
642MiB 0:00:00 [1.01GiB/s] [================================>] 100%
Run Code Online (Sandbox Code Playgroud)
这段代码:
#include <stdio.h>
int main() {
int ch;
while ((ch = …Run Code Online (Sandbox Code Playgroud) 我之前使用过Django(版本1.2)并且通常我喜欢它...它特别擅长快速启动并运行全新的项目.但是,在这种情况下,我正在重写和现有系统并将其移动到Python/Django.所以,我已经拥有一个MySQL数据库,里面有一个"users"表...这个表存储了用户密码和MySQL SHA1函数(没有盐等).
作为迁移的一部分,我将修复一些数据建模缺陷并将其移植到PostgreSQL.
我真的很想使用django.contrib.auth,但我不清楚我需要做什么.我已经阅读了文档,并且知道我可以将所需的用户信息和我所拥有的"额外"信息分开并将其放入UserProfile中.
但是,如何处理存储在MySQL数据库中的密码?
以前有人处理过吗?你采取了什么方法?
问题是什么,如果人们有类似的问题:经过与Mathworks支持的一些讨论后,结果是系统提升和Matlab提供的升级库之间的冲突:当我使用系统升级头编译并与(旧)链接时Matlab推动库,它是分段的.当我编译并动态链接系统boost但它动态加载Matlab boost库时,它永远挂起.
静态链接到系统提升工作,下载Matlab附带的boost版本的正确头文件并与之编译.当然,Matlab的Mac版本在其文件名中没有版本号,尽管Linux和Windows构建版本都有.R2011b使用boost 1.44作为参考.
我有一些多线程代码在直接编译时工作正常,但是当从Matlab mex接口调用时会出现段错误和/或死锁.我不知道不同的环境是否揭示了我的代码中的缺陷,或者是什么,但我无法弄明白......
我在三种机器配置上运行它(虽然有几个CentOS盒子):
这是一个有这种行为的简化版本.
#include <queue>
#include <vector>
#include <boost/thread.hpp>
#include <boost/utility.hpp>
#ifndef NO_MEX
#include "mex.h"
#endif
class Worker : boost::noncopyable {
boost::mutex &jobs_mutex;
std::queue<size_t> &jobs;
boost::mutex &results_mutex;
std::vector<double> &results;
public:
Worker(boost::mutex &jobs_mutex, std::queue<size_t> &jobs,
boost::mutex &results_mutex, std::vector<double> &results)
:
jobs_mutex(jobs_mutex), jobs(jobs),
results_mutex(results_mutex), results(results)
{}
void operator()() {
size_t i;
float r;
while (true) {
// get a …Run Code Online (Sandbox Code Playgroud) 如果我试试这个:
import nltk
text = nltk.word_tokenize("And now for something completely different")
nltk.pos_tag(text)
Run Code Online (Sandbox Code Playgroud)
输出:
Traceback (most recent call last):
File "C:/Python27/pos.py", line 3, in <module>
nltk.pos_tag(text)
File "C:\Python27\lib\site-packages\nltk-2.0.4-py2.7.egg\nltk\tag\__init__.py" ipos_tag
tagger = load(_POS_TAGGER)
File "C:\Python27\lib\site-packages\nltk-2.0.4-py2.7.egg\nltk\data.py", line 605,in
resource_val = pickle.load(_open(resource_url))
ImportError: No module named numpy.core.multiarray
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码运行此SVD求解器scipy:
import numpy as np
from scipy.sparse.linalg import svds
features = np.arange(9,dtype=np.float64).reshape((3,3))
for i in range(10):
_,_,V = svds(features,2)
print i,np.mean(V)
Run Code Online (Sandbox Code Playgroud)
我希望每次打印的平均值都相同,但是它会发生变化,并且似乎会循环显示一些最喜欢的值。由于低级优化/随机播种,我很高兴接受这种行为。
我不太明白的是为什么每次运行该脚本时它都会以相同的顺序输出相同的值。对我来说,这似乎是半确定性和半非确定性的。
这个问题正在影响一些更复杂的处理,理解它会很好,所以我至少可以做一些hacky解决方法。
我从来没有真正处理NLP但是对NER有一个想法,这个想法不应该有效,并且在一个案例中表现得非常好.我不明白为什么它有效,为什么它不起作用或天气可以延长.
这个想法是通过以下方式提取故事中主要人物的名字:
我在爱丽丝梦游仙境上运行了过于简单的代码(附在下面),其中"Alice"返回:
21 ['老鼠','纬度','威廉','兔子','渡渡鸟','狮鹫','螃蟹','女王','公爵夫人','步兵','黑豹','卡特彼勒', '心','国王','比尔','鸽子','猫','帽匠','野兔','海龟','睡鼠']
虽然它过滤大写单词(并且接收"Alice"作为要聚集的单词),但最初有大约500个大写单词,并且就主要字符而言它仍然很有用.
虽然它给出了有趣的结果,但它与其他角色和其他故事的效果并不理想.
不知道这个想法是否可用,可扩展,或者为什么它在"爱丽丝"这个故事中完全有效?
谢谢!
#English Name recognition
import re
import sys
import random
from string import upper
def mimic_dict(filename):
dict = {}
f = open(filename)
text = f.read()
f.close()
prev = ""
words = text.split()
for word in words:
m = re.search("\w+",word)
if m == None:
continue
word = m.group()
if not prev in dict:
dict[prev] = [word]
else :
dict[prev] = dict[prev] + [word]
prev …Run Code Online (Sandbox Code Playgroud) 要替换我使用的主对角线np.fill_diagonal:
matrix = np.zeros((4, 4), float)
main = np.array([2,2,2,2])
np.fill_diagonal(matrix, main)
Run Code Online (Sandbox Code Playgroud)
但我还需要更换主对角线旁边的上下对角线:
upper=np.array([1,1,1])
lower=np.array([7,7,7])
Run Code Online (Sandbox Code Playgroud)
要得到:
matrix=[[2 1 0 0]
[7 2 1 0]
[0 7 2 1]
[0 0 7 2]]
Run Code Online (Sandbox Code Playgroud)
谢谢
鉴于以下功能
int g(int y) {
if (y <= 0) {
return 1;
}
else {
return g(y-1) + g(y-2) + g(y-3);
}
}
Run Code Online (Sandbox Code Playgroud)
我们需要找到T(n)运行时间.现在,我知道你可以写
T(n) = T(n-1) + T(n-2) + T(n-3) + 1
Run Code Online (Sandbox Code Playgroud)
我只是不确定你是否可以进一步简化这一点,比如T(n) = 3T(n-1) + 1?
我搜索答案为什么a is None比工作更快a == None.我使用这段代码测量时间:
>>> timeit.timeit("1 is None", number=10000000)
0.4035069934390217
>>> timeit.timeit("1 == None", number=10000000)
0.8190256083633187
Run Code Online (Sandbox Code Playgroud)
该文件说,a is b具有功能equialent is_(a, b)和a == b具有同等功能eq(a, b).那么,为什么is_功能更快eq?
我读了一些is_()只比较对象标识符的文章,并进行了eq()"深度比较".但我在文档中找不到这些信息.这些信息是否正确?我可以在哪里阅读更多相关信息?
我正在为我的django应用程序添加自动完成功能.
HTML
<script type="text/javascript">
var a = {% get_fields_task_name %}
$( "#auto_task_name" ).autocomplete({
source: a
});
Run Code Online (Sandbox Code Playgroud)
视图
def get_fields_task_name():
task = Task.objects.all()
output = []
for e in task:
output.append(e.name)
x = json.dumps(output)
return x
get_fields_task_name = register.simple_tag(get_fields_task_name)
Run Code Online (Sandbox Code Playgroud)
我需要传递参数get_fields_task_name,如何在模板中执行此操作而不是{% get_fields_task_name %}?