小编Fin*_*ood的帖子

正弦计算比余弦慢几个数量级

TL;博士

在同一个numpy数组中,计算np.cos需要3.2秒,而在Linux Mint上np.sin运行548秒(9分钟).

有关完整代码,请参阅此repo.


我有一个脉冲信号(见下图)我需要调制到HF载波上,模拟激光多普勒振动计.因此,需要对信号及其时间基础进行重新采样,以匹配载波的较高采样率.

脉冲信号被调制到HF载波上

在随后的解调过程中,需要同相载波cos(omega * t)和相移载波sin(omega * t).奇怪的是,评估这些功能的时间在很大程度上取决于计算时间向量的方式.

t1使用np.linspace直接计算时间向量,t2使用实现scipy.signal.resample方法.

pulse = np.load('data/pulse.npy')  # 768 samples

pulse_samples = len(pulse)
pulse_samplerate = 960  # 960 Hz
pulse_duration = pulse_samples / pulse_samplerate  # here: 0.8 s
pulse_time = np.linspace(0, pulse_duration, pulse_samples,
                         endpoint=False)

carrier_freq = 40e6  # 40 MHz
carrier_samplerate = 100e6  # 100 MHz
carrier_samples …
Run Code Online (Sandbox Code Playgroud)

python signal-processing numpy scipy

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

在javascript中获取json对象的最后一个元素

我在javascript中得到了一个json对象,就像
var json = {"20121207":"13", "20121211":"9", "20121213":"7", "20121219":"4"};
不知道最后一个键的名字一样.(键按升序排列)

如何读取最后一个元素的值(和键)?

javascript json

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

使用flask-aiohttp的异步子进程

我正在使用FlaskWeb服务器为耗时的计算提供接口.为了提高性能,我想

  1. 将计算作为新的子进程启动,以便能够使用多个CPU内核进行多个并发计算
  2. 让计算使用异步运行 asyncio

为了asyncio从Flask 调用协同程序,我开始使用flask-aiohttp,这对于简单的延迟任务很有效,如示例所示.但是,我无法从Flask内部调用异步子进程:

#!/usr/bin/env python3
# coding: utf-8

from flask import Flask
from flask.ext.aiohttp import AioHTTP, async

import asyncio
from asyncio.subprocess import PIPE

CALC_SCRIPT = './calc'

app = Flask(__name__)
aio = AioHTTP(app)

@app.route('/calc/<int:n>')
@async
def calc(n):
    print('calc({}) called'.format(n))
    create = asyncio.create_subprocess_exec(CALC_SCRIPT, str(n),
                                            stdout=PIPE, stderr=PIPE)
    print('create... ', end='')
    process = yield from create
    print('process created. {!r}, type={}'.format(process,
                                                  type(process)))
    yield from process.wait()
    print('process finished.')

    # yields (stdout, stderr)
    result = '\n'.join(ch.decode().rstrip() …
Run Code Online (Sandbox Code Playgroud)

python flask python-asyncio

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

Python Docstring 中段落后的项目符号列表有时不适用于 sphinx 和 numpydoc

在使用numpy样式记录 Python 模块并使用sphinxnumpydoc扩展生成 html 文档时,我偶然发现了一个关于项目符号列表的错误(或功能?)。

In reStructuredText (and sphinx/numpydoc), a single-lined paragraph
    - with an immediately following
    - bullet list
    - is allowed,

but if you have a "long" paragraph,
which may be spanning several lines,
    - a following bullet list
    - results in an `ERROR: Unexpected indentation`.

With a blank line added between the "long" paragraph, which again
may span multiple lines, and the following list,

    - bullet lists
    - work fine again. …
Run Code Online (Sandbox Code Playgroud)

restructuredtext python-sphinx numpydoc

5
推荐指数
0
解决办法
2484
查看次数

如何将2个矩阵放入scipy.optimize.minimize?

我使用该scipy.optimize.minimize功能。我的目的是w,z尽量减少f(w,z)

两者wzÑ矩阵:

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

f(w,z)是接收参数w和z。

我已经尝试过以下表格:

def f(x):
   w = x[0]
   z = x[1]
   ...

minimize(f, [w,z])
Run Code Online (Sandbox Code Playgroud)

但是,最小化效果不佳。

将两个矩阵(n × m)放入其中的有效形式是什么scipy.optimize.minimize

python optimization minimize scipy

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

禁用 numpydoc 创建的自动自动摘要

使用autodoc时是否可以禁用完整的自动摘要

我有一个派生自Python 标准库类的类,它有许多公共方法。我的自定义类应该作为包装器,直接提供使用其协议与我的设备进行通信的方法。因此,我只想在自动摘要表中包含一些选定的继承方法。

.. autoclass:: my_module.MyClass
   :members:
   :show-inheritance:

   .. autosummary::
      my_method
      another_method
Run Code Online (Sandbox Code Playgroud)

..autosummary::块完全符合我的要求,但..autoclass::会自动创建完整的方法表。有没有办法禁用此功能?


编辑(澄清)

直接使用autosummary指令,我可以生成一个仅包含my_method和 的方法表another_method

.. autosummary::
   my_method
   another_method
Run Code Online (Sandbox Code Playgroud)

但是,当使用autoclassautomodule 而不使用以下自动摘要指令时,我仍然会得到一个方法表,该方法表看起来与上面的自动摘要块创建的方法表一模一样,只是包含所描述的所有方法:

.. autoclass:: my_module.MyClass
   :members:
   :show-inheritance
Run Code Online (Sandbox Code Playgroud)

编辑2

“完整”自动摘要表由numpydoc生成。

python-sphinx autodoc numpydoc

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

通过非零填充数字串的数字解释对元组列表进行排序

我有一个python列表

l = [('insert_0', 'gtttaattgag'), ('insert_1', 'tttaattgagt'), ('insert_10', 'gttgtcatatg'), ('insert_11', 'ttgtcatatgt'), ('insert_12', 'tgtcatatgtt'), ('insert_2', 'ttaattgagtt'), ('insert_3', 'taattgagttg'), ('insert_4', 'aattgagttgt'), ('insert_5', 'attgagttgtc'), ('insert_6', 'ttgagttgtca'), ('insert_7', 'tgagttgtcat'), ('insert_8', 'gagttgtcata'), ('insert_9', 'agttgtcatat')]
Run Code Online (Sandbox Code Playgroud)

我希望它排序,看起来像

l_needed = [('insert_0', 'gtttaattgag'), ('insert_1', 'tttaattgagt'),('insert_2', 'ttaattgagtt'),('insert_3', 'taattgagttg'), ('insert_4', 'aattgagttgt'), ('insert_5', 'attgagttgtc'), ('insert_6', 'ttgagttgtca'), ('insert_7', 'tgagttgtcat'), ('insert_8', 'gagttgtcata'), ('insert_9', 'agttgtcatat'),('insert_10', 'gttgtcatatg'), ('insert_11', 'ttgtcatatgt'), ('insert_12', 'tgtcatatgtt'),..]
Run Code Online (Sandbox Code Playgroud)

ie l按下标的升序排序"insert".我试过 l.sort()不生产l_needed.你能建议编辑吗?

python sorting

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