小编mha*_*ger的帖子

Joblib并行多个cpu比单个慢

我刚刚开始使用Joblib模块,我正在尝试理解Parallel函数的工作原理.下面是并行化导致运行时间更长的示例,但我不明白为什么.我在1 cpu上的运行时间为51秒,而在2 cpu上为217秒.

我的假设是并行运行循环会将列表a和b复制到每个处理器.然后将item_n分配给一个cpu,将item_n + 1分配给另一个cpu,执行该函数,然后将结果写回列表(按顺序).然后抓住接下来的两个项目,依此类推.我显然错过了一些东西.

这是一个糟糕的例子还是使用joblib?我只是简单地构造了错误的代码吗?

这是一个例子:

import numpy as np
from matplotlib.path import Path
from joblib import Parallel, delayed

## Create pairs of points for line segments
a = zip(np.random.rand(5000,2),np.random.rand(5000,2))

b = zip(np.random.rand(300,2),np.random.rand(300,2))

## Check if one line segment contains another. 
def check_paths(path, paths):
    for other_path in paths:
        res='no cross'
        chck = Path(other_path)
        if chck.contains_path(path)==1:
            res= 'cross'
            break
    return res

res = Parallel(n_jobs=2) (delayed(check_paths) (Path(points), a) for points in b)
Run Code Online (Sandbox Code Playgroud)

python parallel-processing

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

熊猫groupby和qcut

有没有办法构建Pandas groupby和qcut命令返回一个具有嵌套切片的列?具体来说,假设我有2组数据,我希望qcut应用于每个组,然后将输出返回到一列.这类似于MS SQL Server的ntile()命令,允许Partition by().

     A    B  C
0  foo  0.1  1
1  foo  0.5  2
2  foo  1.0  3
3  bar  0.1  1
4  bar  0.5  2
5  bar  1.0  3
Run Code Online (Sandbox Code Playgroud)

在上面的数据框中,我想将Qcut函数应用于B,同时在A上进行分区以返回C.

python group-by pandas

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

GSUTIL签署了Url PUT到谷歌云存储失败

我希望网站的用户能够在google cloud storage不使用网络应用服务器资源的情况下上传文件,因此签名的网址似乎就是这样.

当用户选择要上载的文件时,会jquery向签名的URL 发送GET请求django.使用gsutil signurl命令生成URL .Django然后将签名的URL返回给模板,并在提交jquery PUT请求时使用签名的URL发送.

然而:

  • PUT请求失败并带有'SignatureDoesNotMatch'.
  • 使用此方法可以正常处理对存储对象的GET请求.

是否必须使用PUT请求发送必需的标头?

gsutil命令(假设用户选择文件'map.html')...

gsutil signurl -p notasecret -m PUT -d 10m /path/to/.p12 gs://bucket_name/map.html
Run Code Online (Sandbox Code Playgroud)

jquery PUT代码......

    $.ajax( {
  url: g_url,
  type: 'PUT',
  crossDomain: true,
  success: console.log('success'),
  error: function(XMLHttpRequest, textStatus, errorThrown){
    alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText);
},
  data: file,
} );
Run Code Online (Sandbox Code Playgroud)

g_url看起来像......

https://storage.googleapis.com/bucket_name/map.html?GoogleAccessId=__retracted__&Expires=1408889274&Signature=rDJAZQG4MIyMupy0M8HJ17r8rkEJcAbYSWpcq084SdzRh%2BnZavTfuWl4Q%2F6ytkSkN2c2%2B4b4pPRF5eWOEOL1InRxlB5pEBedPFZPpgDrRvR9tFybtH%2BkesKLhIZ3WjJ0utzAwhl%2BgAlQY6ulvO0Djib20zcG5fkHOigpRf1xBUk%3D
Run Code Online (Sandbox Code Playgroud)

django jquery google-cloud-storage gsutil

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