小编Leo*_*eon的帖子

如何使用Python timeit模块捕获返回值?

我在for循环中使用sklearn运行几个机器学习算法,并希望看到每个机器学习算法需要多长时间.问题是我还需要返回一个值,并且DONT想要多次运行它,因为每个算法都需要很长时间.有没有办法使用python的timeit模块或类似的函数捕获返回值'clf'...

def RandomForest(train_input, train_output):
    clf = ensemble.RandomForestClassifier(n_estimators=10)
    clf.fit(train_input, train_output)
    return clf
Run Code Online (Sandbox Code Playgroud)

当我这样调用函数时

t = Timer(lambda : RandomForest(trainX,trainy))
print t.timeit(number=1)
Run Code Online (Sandbox Code Playgroud)

PS我也不想设置全局'clf',因为我可能想稍后进行多线程或多处理.

python timeit python-2.7 scikit-learn

26
推荐指数
3
解决办法
7806
查看次数

Dockerfile和docker-不使用新指令进行更新

当我尝试使用docker-compose构建容器时

nginx:
  build: ./nginx
  ports:
    - "5000:80"
Run Code Online (Sandbox Code Playgroud)

当我的Dockerfile看起来像这样时,COPY指令不起作用

FROM nginx

#Expose port 80
EXPOSE 80

COPY html /usr/share/nginx/test

#Start nginx server
RUN service nginx restart
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

containers docker dockerfile docker-compose

8
推荐指数
2
解决办法
6349
查看次数

在Python中,如何创建可变长度组合或排列?

假设我有一个名为arr = [1,2,3,4]的数组

如何使用最少2个参数生成所有可能的组合,最终看起来像

[1,2]
[1,3]
[1,4]
[1,2,3]
[1,2,4]
[1,2,3, 4]
[2,3]
[2,4]
Run Code Online (Sandbox Code Playgroud)

等等等等?我正在努力工作.我似乎无法使用itertools.combinbinations或排列,因为我需要知道参数大小,我似乎不能使用itertools.products,因为这将从列表列表中的每一个看起来像这样最少一个参数[[1],[2],[3],[4],[5]].特别感谢一个衬里和理解.

如果我想将它们全部加在一起那么在帮助方面要求太多吗?;-)

python combinations list-comprehension python-3.x

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

Python词典理解中的多项赋值

让我们说我有一个清单

demo  = [['Adam', 'Chicago', 'Male', 'Bears'], ['Brandon', 'Miami', 'Male', 'Dolphins']]
Run Code Online (Sandbox Code Playgroud)

我想用一个看起来像的理解来制作一个字典列表

[{'Adam':'Chicago', 'Gender':'Male', 'Location':'Chicago', 'Team':'Bears'},
{'Brandon':'Miami', 'Gender':'Male', 'Location':'Miami', 'Team':'Dolphins'} }
Run Code Online (Sandbox Code Playgroud)

很容易分配两个起始值来获得类似的东西

{ s[0]:s[1] for s in demo} 
Run Code Online (Sandbox Code Playgroud)

但是有没有合法的方法在这种理解中分配多个值,看起来像

{ s[0]:s[1],'Gender':s[2], 'Team':s[3] for s in demo} 
Run Code Online (Sandbox Code Playgroud)

这是一个特定的问题,我不知道搜索的条款,所以我很难找到它,上面的例子给我一个语法错误.

python dictionary list-comprehension python-3.x

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

基本Dockerfile没有运行CMD命令

我有一个简单的Dockerfile似乎没有执行CMD命令.

FROM nginx

#Expose port 80
EXPOSE 80


#Start nginx server
#RUN service nginx start

COPY startup_nginx.sh /startup_nginx.sh
RUN chmod +x /startup_nginx.sh

#CMD ["/usr/bin/wc","--help"]
CMD ['/startup_nginx.sh']
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

docker dockerfile docker-compose

3
推荐指数
1
解决办法
230
查看次数

Python中的简单语法错误,否则dict理解

我有一个集合和字典,值= 5

v = s = {'a', 'b', 'c'}
d = {'b':5 //<--new value}
Run Code Online (Sandbox Code Playgroud)

例如,如果字典d中的键'b'在set s中,那么我想在返回字典理解时使该值等于新值,或者如果set s中的键不在字典d中则使该值等于0.所以这是我的代码,在s ['b'] = 5并且我的新词典是...

{'a':0, 'b':5, 'c':0}
Run Code Online (Sandbox Code Playgroud)

我写了一个字典理解

{  k:d[k] if k in d else k:0 for k in s}
                          ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

为什么?!我很生气它不起作用.你是怎么做的如果在python中不是吗?

大家好抱歉.对于那些访问过这个页面的人,我最初放了{k:d [k]如果k in v else k:0 for k in v}而s ['b'] = 5只是表示我创建的新词典会有键'b'等于5,但它不正确你不能迭代这样的集合.

所以重申v和s是平等的.它们只是指向量和集合.

python list-comprehension python-3.x

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