小编I.P*_*ley的帖子

Python名称空间与ipython并行问题

我开始尝试使用IPython并行工具并遇到问题.我启动我的python引擎:

ipcluster start -n 3
Run Code Online (Sandbox Code Playgroud)

然后以下代码运行正常:

from IPython.parallel import Client

def dop(x):
    rc = Client()
    dview = rc[:]
    dview.block=True
    dview.execute('a = 5')
    dview['b'] = 10
    ack = dview.apply(lambda x: a+b+x, x)
    return ack

ack = dop(27)
print ack
Run Code Online (Sandbox Code Playgroud)

按原样返回[42,42,42].但如果我将代码分成不同的文件:dop.py:

from IPython.parallel import Client

def dop(x):
    rc = Client()
    dview = rc[:]
    dview.block=True
    dview.execute('a = 5')
    dview['b'] = 10
    print dview['a']
    ack = dview.apply(lambda x: a+b+x, x)
    return ack
Run Code Online (Sandbox Code Playgroud)

并尝试以下方法:

from dop import dop
ack = dop(27)
print ack
Run Code Online (Sandbox Code Playgroud)

我从每个引擎得到错误:

[0:apply]: …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing ipython python-2.7

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

用numpy数组计算累积最小值

我想计算"累积最小值"数组 - 基本上,数组的最小值,直到每个索引,如:

import numpy as np
nums = np.array([5.,3.,4.,2.,1.,1.,2.,0.])
cumulative_min = np.zeros(nums.size, dtype=float)
for i,num in enumerate(nums):
    cumulative_min[i] = np.min(nums[0:i+1])
Run Code Online (Sandbox Code Playgroud)

这工作(它返回正确的数组([5.,3.,3.,2.,1.,1.,1.,0.])),但如果我能,我想避免for循环.我认为构建一个二维数组并使用np.amin()函数可能会更快,但我也需要一个循环.

python arrays numpy

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

在python中列出一个可以使用的ints列表

我有一个整数列表,我想用作python词典中的键.我正在缓存一个以int的列表作为输入的函数的结果.我目前的解决方案

list_of_ints = [1,20,3,4]
key = str(sorted(list_of_ints))[1:-1].replace(' ','')
Run Code Online (Sandbox Code Playgroud)

它产生关键'1,3,4,20'.似乎应该有更快/更漂亮/更pythonic的方式来做到这一点.

python hash

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

标签 统计

python ×3

arrays ×1

hash ×1

ipython ×1

numpy ×1

parallel-processing ×1

python-2.7 ×1