小编Rom*_*man的帖子

如何将python变量编码为URL和Web服务器响应?

假设我有一个Python函数,它接受几个参数作为输入并返回一个输出.

现在我希望有一个基于此功能的"Web服务"(API).这意味着应该有一个可以使用一些参数调用的URL,这个参数应该传递给函数,函数接受它们并计算相应的结果(输出)并将其传递回Web服务器,在其中转,向用户显示结果(可能是另一个程序).

如果一个简单的函数接受两个实值参数(例如xy)并返回一个实值结果,则可以组织函数调用throw get参数.例如:

www.my_web_site.org/my_func_name?x=1.234&y=3.456
Run Code Online (Sandbox Code Playgroud)

因此,我希望网页只包含一个实数.

但是,对于我来说,对于更复杂的输入我应该做些什么并不是那么明显.假设作为一些参数的值,我们可以有列表和字典.我应该如何在URL中对它们进行编码.我可以想象这样的事情:

www.my_web_site.org/my_func_name?x=[1,2,3,4]&y={1:'a',2:'b'}
Run Code Online (Sandbox Code Playgroud)

但是,我不确定这是一个优雅的解决方案.有没有标准怎么做?也许我应该使用XML或JSON来编码输入.

同样的问题适用于输出.假设我们可以将字典或列表或甚至集合作为输出.我应该如何表达它.我应该使用str(output)还是有其他"标准"解决方案?

python xml api url json

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

如何生成一组给定长度和元素总和的所有元组?

我想要一个函数,它生成一组(或一个列表)所有可能的元组,具有给定的长度和元素的总和。元组的元素不应该是负整数。

例如对于以下输入

get_tuple(length=3, total=2)
Run Code Online (Sandbox Code Playgroud)

我想得到以下输出:

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

Python 中的标准库可以做到这一点吗?如果没有,如何编写一个可以做到的函数?

python recursion combinatorics

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

如何有效地从numpy数组中提取其索引给出的元素列表?

我有一个多维的numpy数组,我想把它的一些元素构造成一维数组.我需要采取的元素由它们的索引给出,例如:

inds = [(0,0), (0,1), (1,1), (1,0), (0,2)] 
Run Code Online (Sandbox Code Playgroud)

我以一种简单的方式解决它:

ls = [] 
for i, j in inds:
   ls += [a[i,j]]
Run Code Online (Sandbox Code Playgroud)

它给出了期望的结果.但是,我意识到这个解决方案对我来说太慢了.是否有可能以更有效的方式做同样的事情?

python optimization numpy

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

如何有效地提取numpy中的子数组?

我有一个以 3D numpy 数组形式给出的图像(宽度、高度和颜色作为尺寸)。现在我想提取给定形状的所有可能的子图像。例如,原始图像的宽度和高度分别为300和200像素,我想提取宽度和高度分别等于10和20像素的所有子图像。此外,我希望将每个子图像作为一维数组(为此我需要指定特定的像素顺序)。

我通过以下方式解决问题:

for col0 in range(w_max - max_shift):
    x3s_new = [x + col0 for x in x3s]
    for row0 in range(h_max - max_shift):

        vec_1 = []
        for col_shift, row_shift in px_inds:
            col = col0 + col_shift
            row = row0 + row_shift
            vec_1 += [ia[row, col, 0], ia[row, col, 1], ia[row, col, 2]]

        y3s_new = [y + row0 for y in y3s]
        vec_2 = list(ia[y3s_new, x3s_new, z3s])
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我对表示图像的“矩阵”的列和行进行了循环。然后,我将每个像素(由其列和行给出)视为子图像的左上角并提取子图像。

和是以一维数组vec_1vec_2列表)形式给出的所需子图像。它们是相同的,我只是想测试哪种方法更快。令人惊讶的是,生成的时间vec_2vec_1. 然而,根据我对问题的 …

python arrays optimization numpy

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

如何使用networkx可视化任意json?

我有一个 JSON 对象。例如:

js = {'a':'b', 'c':[10, 20], 'd':{'f':'k', 'l':'m'}}
Run Code Online (Sandbox Code Playgroud)

现在,我想使用networkx库来显示可视化此 JSON 的图表。更详细地说,对于给定的示例,我希望有一个指向acd节点的“根”节点。然后a节点应该指向b 节点,c节点应该指向1020d节点应该指向fl节点,最后fl节点应该分别指向km节点。所以,我想执行以下操作:

G=nx.Graph()
G.dad_nodes_from(['a', 'c', 'd', 'b', 10, 20, 'f', 'l', 'k', 'm'])
G.add_edge('a','b')
G.add_edge('c',10)
G.add_edge('c',20)
G.add_edge('d','f')
G.add_edge('d','l')
G.add_edge('f','k')
G.add_edge('l','m')
Run Code Online (Sandbox Code Playgroud)

我可以手动完成,但是如何自动完成呢?

添加:d部分问题来自于可能引用不同对象的事实。因此,d因为一个字典中的键与另一字典中的键不是同一节点d

python recursion json networkx

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

为什么我无法导入我的点子列表中的库?

我刚安装了pypngsudo -E pip install pypng.我执行时会在列表中看到这个库pip list(我看到的版本0.0.18).

当我启动python(或ipython)会话并执行时

import pypng
Run Code Online (Sandbox Code Playgroud)

我明白了

ImportError: No module named pypng
Run Code Online (Sandbox Code Playgroud)

python import pip pypng

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

如何将不同的聚合函数应用于同一列为什么要对 Spark 数据帧进行分组?

要使用 pyspark 按 Spark 数据帧进行分组,我使用如下命令:

df2 = df.groupBy('_c1','_c3').agg({'_c4':'max', '_c2' : 'avg'})
Run Code Online (Sandbox Code Playgroud)

结果我得到这样的输出:

+-----------------+-------------+------------------+--------+                   
|              _c1|          _c3|          avg(_c2)|max(_c4)|
+-----------------+-------------+------------------+--------+
|        Local-gov|      HS-grad| 644952.5714285715|       9|
|        Local-gov|   Assoc-acdm|365081.64285714284|      12|
|     Never-worked| Some-college|          462294.0|      10|
|        Local-gov|    Bachelors|         398296.35|      13|
|      Federal-gov|      HS-grad|          493293.0|       9|
|          Private|         12th| 632520.5454545454|       8|
|        State-gov|    Assoc-voc|          412814.0|      11|
|                ?|      HS-grad| 545870.9230769231|       9|
|          Private|  Prof-school|340322.89130434784|      15|
+-----------------+-------------+------------------+--------+
Run Code Online (Sandbox Code Playgroud)

这很好,但有两件事我想念:

  1. 我想控制列的名称。例如,我想要命名一个新avg_c2avg(_c2)
  2. 我想以不同的方式聚合同一列。例如,我可能想知道 column 的最小值和最大值_c4。我尝试了以下方法,但它不起作用:

    df2 = df.groupBy('_c1','_c3').agg({'_c4':('min','max'), '_c2' : 'avg'})

有办法实现我所需要的吗?

group-by apache-spark pyspark

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

git fetch 和 checkout FETCH_HEAD 有什么作用?

以下命令有什么作用:

git fetch <remote> <branch> && git checkout FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)

我只有一个本地分支 ( master) 并且我执行上述命令。我应该期待我的本地存储库发生哪些变化,我该如何验证(查看)它们?

git

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

为什么从 numpy 按位左移在不同系统上给出不同的结果?

我在两个不同的系统上使用来自 numpy 的按位运算并得到不同/不一致的结果。经过一番调查,我发现left_shift导致问题的原因。如果我执行以下操作:

xs = [i for i in range(100)]
np.left_shift(xs, xs)
Run Code Online (Sandbox Code Playgroud)

在第一个系统上,我得到:

array([                   0,                    2,                    8,
                         24,                   64,                  160,
                        384,                  896,                 2048,
                       4608,                10240,                22528,
                      49152,               106496,               229376,
                     491520,              1048576,              2228224,
                    4718592,              9961472,             20971520,
                   44040192,             92274688,            192937984,
                  402653184,            838860800,           1744830464,
                 3623878656,           7516192768,          15569256448,
                32212254720,          66571993088,         137438953472,
               283467841536,         584115552256,        1202590842880,
              2473901162496,        5085241278464,       10445360463872,
             21440476741632,       43980465111040,       90159953477632,
            184717953466368,      378231999954944,      774056185954304,
           1583296743997440,     3236962232172544,     6614661952700416,
          13510798882111488,    27584547717644288,    56294995342131200,
         114841790497947648,   234187180623265792,   477381560501272576,
         972777519512027136,  1981583836043018240,  4035225266123964416,
        8214565720323784704, -1729382256910270464, -2882303761517117440,
       -4611686018427387904, -6917529027641081856, -9223372036854775808,
       -9223372036854775808, …
Run Code Online (Sandbox Code Playgroud)

python numpy bit-shift bitwise-operators

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

如何确定我是否在Linux中安装了Python模块?

我尝试通过键入以下命令来安装Python模块:sudo python setup.py install输入此命令之后,我在屏幕上输出了很多内容.至少有几行如下:

writing manifest file 'scikits.audiolab.egg-info/SOURCES.txt'
removing '/usr/lib/python2.5/site-packages/scikits.audiolab-0.10.2-py2.5.egg-info' (and everything under it)
Copying scikits.audiolab.egg-info to /usr/lib/python2.5/site-packages/scikits.audiolab-0.10.2-py2.5.egg-info
Installing /usr/lib/python2.5/site-packages/scikits.audiolab-0.10.2-py2.5-nspkg.pth
running install_scripts
Run Code Online (Sandbox Code Playgroud)

所以,没有什么可疑的.但是当我尝试使用Python中的模块时:

import pyaudiolab
Run Code Online (Sandbox Code Playgroud)

我看到Python没有找到模块:

Traceback (most recent call last):  
File "test.py", line 1, in <module>
    import pyaudiolab ImportError: No module named pyaudiolab
Run Code Online (Sandbox Code Playgroud)

怎么才能发现出了什么问题?作为安装的结果,我得到一个新目录:/usr/lib/python2.5/site-packages(所以发生了一些事情),但我仍然无法使用该模块.任何人都可以帮助我吗?

python import install module

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