小编MLi*_*ter的帖子

如何在Pandas数据帧的列中存储numpy数组?

是否可以将任意numpy数组存储为数据帧中单个列的值Pandas

这些数组都是二维的,我打算用它们来计算同一数据帧中其他列的值.

提供我在这里尝试做的一些背景:

每个阵列都是某个网络的邻接矩阵,对于每个网络,我想计算其各种特征(例如密度,中心,聚类系数等),这些特征实际上是同一数据帧中的其他列.

python numpy python-2.7 pandas

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

如何应对通过CloudFront生成签名URL以访问私有内容的性能?

AWS S3和CloudFront的常见用例是提供私有内容.常见的解决方案是使用签名的CloudFront URL来访问使用S3存储的私有文件.

但是,生成这些URL需要付出代价:使用私钥计算任何给定URL的RSA签名.对于Python(或botoAWS的Python SDK),rsa(https://pypi.python.org/pypi/rsa)库用于此任务.在我2014年末的MBP中,使用2048位密钥每次计算大约需要25ms.

此成本可能会影响使用此方法授权通过CloudFront访问私有内容的应用程序的可伸缩性.想象一下,多个客户端请求以25~30ms/req频繁访问多个文件.

在我看来,虽然rsa上面提到的库最近更新了大约1.5年前,但在签名计算本身上并没有太多改进.我想知道是否有其他技术或设计可以优化此过程的性能以实现更高的可扩展性.或者我们是否只需要投入更多硬件并尝试以强力方式解决它?

一个优化可以是使API端点接受每个请求的多个文件签名,并批量返回签名的URL,而不是在单独的请求中单独处理它们,但计算所有这些签名所需的总时间仍然存在.

python web-applications amazon-s3 amazon-web-services amazon-cloudfront

15
推荐指数
2
解决办法
1093
查看次数

将连接字符串拆分为元组并忽略空字符串的最快方法

我有一个像这样的连接字符串:

my_str = 'str1;str2;str3;'
Run Code Online (Sandbox Code Playgroud)

我想将split函数应用于它然后将结果列表转换为元组,并删除由此产生的任何空字符串split(注意最后的';'到最后)

到目前为止,我这样做:

tuple(filter(None, my_str.split(';')))
Run Code Online (Sandbox Code Playgroud)

是否有更高效(在速度和空间方面)的方式来做到这一点?

python split

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

简单的客户端文件处理,无需刷新

JavaScript对于以下用例,什么是简洁明了的解决方案:

在网页上,用户从本地文件系统中选择并上传文本文件,但不是将文件加载到服务器,而是打开客户端javascript代码并处理文件内容,并将结果写入同一页面没有刷新页面.

注意:我不需要保留文件的内容 - 如果用户关闭页面,则内容丢失,这很好.一切都应该发生在客户端的页面上 - 无需触摸服务器.

如果有一些轻量级的JQuery插件,很想知道!

javascript jquery web-applications

12
推荐指数
2
解决办法
7565
查看次数

scipy.stats.linregress,numpy.polynomial.polynomial.polyfit和statsmodels.api.OLS之间的差异

似乎所有三个函数都可以进行简单的线性回归,例如

scipy.stats.linregress(x, y)

numpy.polynomial.polynomial.polyfit(x, y, 1)

x = statsmodels.api.add_constant(x)
statsmodels.api.OLS(y, x)
Run Code Online (Sandbox Code Playgroud)

我想知道这三种方法之间是否有任何真正的区别?我知道它statsmodels是建立在最基础之上的scipy,并且scipy有点依赖于numpy很多东西,所以我希望它们不应该大不相同,但是魔鬼总是在细节中.

更具体地说,如果我们使用numpy上面的方法,我们如何得到p-value其他两种方法默认给出的斜率?

我在Python 3中使用它们,如果这有任何区别.

python numpy scipy python-3.x statsmodels

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

通过PATCH进行部分更新:如何解析SQL更新的JSON数据?

我正在服务器端实现'PATCH'以部分更新我的资源.

假设我没有在JSON请求/响应中公开我的SQL数据库模式,即JSON中的键和表的列之间存在单独的映射,如何在SQL中给出JSON的最佳数据,以便最好地确定要更新的列.部分更新?

例如,假设我的表有3列:col_a,col_bcol_c,并且JSON键与表列之间的映射是:a -> col_a, b -> col_b, c -> col_c.鉴于JSON-PATCH数据:

[
    {"op": "replace", "path": "/b", "value": "some_new_value"}
]
Run Code Online (Sandbox Code Playgroud)

以编程方式将此部分更新应用于col_b与我的资源相对应的表的最佳方法是什么?

当然,我可以在keys_to_columns某个地方的dict 中对这些映射进行硬编码,并且根据每个请求patch_data,我可以这样做:

mapped_updates = {keys_to_columns[p['path'].split('/')[-1]]: p['value'] for p in patch_data}
Run Code Online (Sandbox Code Playgroud)

然后用于mapped_updates构建用于数据库更新的SQL语句.如果上面抛出一个KeyError我知道请求数据无效并且可以扔掉它.我需要为我拥有的每个表/资源执行此操作.

我想知道是否有更好的方法.

python api rest json http-patch

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

找出给定键组合的相应转义序列

Emacs,我想将特定的键组合绑定到命令.但是,因为我在OS X上使用Emacs终端模式iTerm2,我需要将键组合转换为字符转义序列并注册该序列,iTerm2以便它能识别键组合.

但是如何根据组合键找出相应的序列?例如,我发现像^[[1;8A对应于Ctrl+ Alt+ up(其中我已经配置Alt以充当+EsciTerm2),但我不知道该键组合如何转化为这个特殊的序列.

有没有办法查找或计算任何给定的键组合的转义序列?例如,Ctrl+ Alt+ 的序列是什么r

一个相关的问题,有人可以向我解释设置一个关键组合与其相应的序列之间的关系,iTerm2Emacs使用input-decode-map内部.emacs(例如(define-key input-decode-map "[escape_sequencehere]" [internal_key_representation_here])将序列转换为其内部键表示?在我看来,iTerm2单独设置它就足以使绑定工作Emacs,所以我们何时以及为什么需要设置后者.emacs?(也许我们什么时候需要两者都能使某些东西发挥作用?)

emacs key-bindings iterm2

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

如何将SockJS与另一个Web框架集成

作为Socket.io的替代品,有SockJS(https://github.com/sockjs/sockjs-client),它似乎比Socket.io更好地维护和更稳定.

这个问题是关于概念性理解将SockJS与Web框架一起使用的架构,例如,用于构建聊天应用程序

我目前的理解是你需要SockJS客户端和SocketJS服务器(在我的情况下,我打算使用SockJS-Tornado(https://github.com/MrJoes/sockjs-tornado))来制作websockets-风格沟通.

但是SockJS(SockJS-client + SockJS-Tornado)如何与执行其余工作的Web框架(例如,提供页面,写入/读取数据库等)相结合.例如,SockJS-Tornado组件如何与框架的Web服务器通信?特别是,高度赞赏使用web2py(python web框架)执行此操作的任何方向.

web2py web-frameworks server-push reverse-ajax websocket

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

字典的内存消耗:设置值无与删除项

我理解这del d[key]将删除键值对,而d[key]=None只删除该值.

但是,在内存管理方面,有什么区别吗?设置值是否会None立即触发垃圾收集,假设没有其他变量引用此值?

我做了一个小实验:

In [74]: import sys
In [75]: a = {'a': 'blah'}

In [76]: sys.getsizeof(a)
Out[76]: 280

In [77]: a['a'] = None

In [79]: sys.getsizeof(a)
Out[79]: 280

In [80]: del a['a']

In [81]: sys.getsizeof(a)
Out[81]: 280
Run Code Online (Sandbox Code Playgroud)

不确定方法是否有效,但根据字典的大小来看似乎没有区别.我必须在这里错过一些东西

python

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

API设计中的功能结构

通过"功能结构化",我的意思是我们如何组织和协调不同的API端点,以便为客户提供所需的功能.这里的上下文是用于具有GPS跟踪的移动电话消费的web API,并且我假设大多数功能都需要蜂窝或WiFi连接.

我个人更喜欢更"模块化"的方法,其中每个端点主要完成一件事,并且它们的集合满足所有要求.当然,您可能需要组合这些端点的一些子集或序列以实现某些功能.总的来说,我尝试在计算和功能方面最小化端点之间的重叠.

另一方面,我知道其他一些人更喜欢客户端方便(或简单)而不是模块化,方法如下:

  1. 如果客户需要实现一个功能性,那么就应该存在一个单个 API端点这正是如此,使得客户端只需要一个单一的请求履行与请求之间具有最小的缓存/逻辑的功能.

  2. 对于GET端点,如果某些功能涉及多个级别/种类的数据,则他们更喜欢单个端点返回的尽可能多的数据(通常是所有必需的数据).具有讽刺意味的是,他们可能还需要一个专用端点,用于使用相应的"最高级别"ID检索"最低级别"数据.例如,If A对应于Bs 的集合,并且每个B对应于Cs 的集合,那么他们将更喜欢直接端点,该端点检索C给定的所有相关的s A.

  3. 在某些极端情况下,他们将要求具有模糊命名的单个端点(例如/ api/data),其基于查询字符串参数的不同组合返回来自不同底层DB表(换句话说,不同资源)的相关数据.

据我所知,人们更喜欢上述便利,目的是:1.减少履行功能所需的API请求数量; 2.最小化客户端的数据缓存和数据逻辑,以降低客户端的复杂性,这可以说是一个"简单"的客户端,简化了与服务器的交互.

但是,我也想知道从长远来看,这样做的成本是否在其他方面是不合理的,特别是在服务器端API的性能和维护方面.因此我的问题:

  1. 构建API功能的经过验证的指南是什么?

  2. 我们如何确定在移动应用中实现功能所需的最佳请求数量?当然,如果所有其他条件相同,单个请求是最好的,但实现这样的单一请求实现通常会在其他方面带来惩罚.

  3. 鉴于客户端请求的数量与服务器端API的性能和可维护性之间存在争议,为实现合理的设计,有哪些方法可以实现平衡?

api rest web-services api-design

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