小编seb*_*piq的帖子

Scipy:几个选定频率的傅里叶变换

我正在使用scipy.fft一个信号,用一个移动窗口绘制频率随时间变化的幅度(这里是一个例子,时间在X上,频率在Y上,振幅是颜色).

但是,只有少数频率让我感兴趣(仅限3,4个频率).使用FFT,似乎我不能只选择我想要的频率(因为显然频率范围是由算法确定的),所以我计算了很多无用的东西,MemoryError如果信号也是如此,我的程序甚至会崩溃长.

我该怎么办 ?我是否必须使用自定义傅立叶变换 - 在这种情况下,欢迎良好实现的链接 - 或者是否有scipy办法?


编辑

在@jfaller回答之后,我决定(尝试)实现Goertzel算法.我想出了这个:https://gist.github.com/4128537 但它不起作用(频率440没有出现,没关系峰值,我没有费心去应用一个合适的窗口).任何帮助!?我对DSP不好.

python fft scipy

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

Python:子类`type`来创建专门的类型(例如"int"列表)

我正在尝试子类化type以创建一个允许构建专用类型的类.例如ListType:

>>> ListOfInt = ListType(list, value_type=int)
>>> issubclass(ListOfInt, list)
True
>>> issubclass(list, ListOfInt)
False
>>> # And so on ...
Run Code Online (Sandbox Code Playgroud)

但是,这ListOfInt永远不会用于创建实例!我只是将它用作type我可以操作以与其他类型进行比较的实例...特别是在我的情况下,我需要查找合适的操作,根据输入的类型,我需要的类型为包含更多精度(如list of intXML string等).

所以这就是我提出的:

class SpzType(type):

    __metaclass__ = abc.ABCMeta

    @classmethod
    def __subclasshook__(cls, C):
        return NotImplemented

    def __new__(cls, base, **features):
        name = 'SpzOf%s' % base.__name__
        bases = (base,)
        attrs = {}
        return super(SpzType, cls).__new__(cls, name, bases, attrs)

    def __init__(self, base, **features):
        for name, value in features.items():
            setattr(self, name, …
Run Code Online (Sandbox Code Playgroud)

python abc

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

如何知道节点中的`http.Server`实例是否已经在监听

我有一个http服务器和一段代码,只有在服务器正在侦听时才需要运行.为此,我这样绑定"listening"事件:

server.on('listening', doSomething)
Run Code Online (Sandbox Code Playgroud)

问题是我的服务器可能已经在监听,然后事件"listening"将不会被发出,我的代码将无法运行...有没有办法知道服务器的状态?就像是 :

if (server.isListening() === true) doSomething()
else server.on('listening', doSomething)
Run Code Online (Sandbox Code Playgroud)

编辑我当然可以(正如在其他类似问题中所建议的那样)尝试连接到该端口并查看是否有人在听.但这并不能证明我使用的特定实例正在倾听.只是有些服务正在那里听.

node.js

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

Django:按月/年分组的日期属性的总和

我想把这个查询从SQL转到Django:

"select date_format(date, '%Y-%m') as month, sum(quantity) as hours from hourentries group by date_format(date, '%Y-%m') order by date;"
Run Code Online (Sandbox Code Playgroud)

导致问题的部分是聚合时按月分组.我试过这个(看似合乎逻辑),但它不起作用:

HourEntries.objects.order_by("date").values("date__month").aggregate(Sum("quantity"))
Run Code Online (Sandbox Code Playgroud)

python django django-orm

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

Python:元类+包装方法+继承=问题

我在Python中遇到问题,我找不到任何干净的解决方案......

在调用某些方法时,我想在方法执行之前和之后执行一些代码.按顺序(在许多其他事项中)自动设置和清理context变量.

为了实现这一点,我宣布了以下元类:

class MyType(type):
    def __new__(cls, name, bases, attrs):
        #wraps the 'test' method to automate context management and other stuff
        attrs['test'] = cls.other_wrapper(attrs['test'])
        attrs['test'] = cls.context_wrapper(attrs['test'])
        return super(MyType, cls).__new__(cls, name, bases, attrs)

    @classmethod
    def context_wrapper(cls, operation):
        def _manage_context(self, *args, **kwargs):
            #Sets the context to 'blabla' before the execution
            self.context = 'blabla'
            returned = operation(self, *args, **kwargs)
            #Cleans the context after execution
            self.context = None
            return returned
        return _manage_context

    @classmethod
    def other_wrapper(cls, operation):
        def _wrapped(self, *args, **kwargs):
            #DO …
Run Code Online (Sandbox Code Playgroud)

python inheritance metaclass

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

“application/x-www-form-urlencoded”和空值的标准是什么?

不久前,我注意到当将映射编码name: value为时'application/x-www-form-urlencoded,它会呈现类似的内容(这里我使用 Python):

>>> from urllib import urlencode
>>> urlencode({'hello': '', 'blabla': 'hihi'})
'blabla=hihi&hello='
Run Code Online (Sandbox Code Playgroud)

但是解析(至少使用Python)只是删除具有空值的对:

>>> from urlparse import parse_qs
>>> parse_qs('blabla=hihi&hello=')
{'blabla': ['hihi']}
Run Code Online (Sandbox Code Playgroud)

那么...这是标准行为吗?www-form-urlencoded在哪里可以找到有关如何解析的参考?我用 google 搜索了一段时间,找到了 uris 的 RFC、表单的 W3c 文档等等,但没有找到关于如何处理空值的信息。有人可以给我指点吗???

html python standards http urlencode

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

Python 中的 3D 几何拓扑(例如交集)

我正在使用 GEOS(在 Python/Django 中)来操作一些 3d 元素。所有拓扑操作都可以在 2D 中完美运行。所以,我MultiPolygon用 3D 多边形创建了一个简单的(实际上很简单,它只是一个垂直平面的集合),一个LineString也是 3D 的。现在我只想要那些的交集(我相信这将是一个 3D 点列表):

>>> l = LineString([0, 0, 0], [1, 1, 1])
>>> p = Polygon([[1, 0, 0], [0, 1, 0], [0, 1, 1000], [1, 0, 1000], [1, 0, 0]])
>>> p.intersects(l)
False
Run Code Online (Sandbox Code Playgroud)

好吧,geos 不支持使用 3D 数据进行拓扑操作……嗯,肯定有很多库可以为我做到这一点,对吗????所以我用谷歌搜索,我找不到一个!!!所以如果有人有一个指针,那就太好了......

编辑

有一个与Intersections of 3D polygons in python类似的问题,但这并没有给出任何令人满意的答案(见评论)。

python geometry geos

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

OSX相当于管道声音到linux的播放

在Ubuntu上,我可以aplay通过将脚本的输出传递给aplay的stdin来播放从脚本中生成的声音:

./generate_sound.py | aplay -r 2000 -c2 -f MU_LAW
cat sample.wav | aplay
Run Code Online (Sandbox Code Playgroud)

有没有办法在OSX中从终端做同样的事情?我认为afplay不支持这个......

也许有人知道另一个OSX命令行声音播放器可以做到这一点?

audio macos

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

使用curl进行WebSocket服务器健康检查

我正在尝试使用curl.

curl --include --no-buffer \
    --header "Connection: Upgrade" \
    --header "Upgrade: websocket" \
    --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
    --header "Sec-WebSocket-Version: 13" \
    http://localhost:3000
Run Code Online (Sandbox Code Playgroud)

HTTP 101我发送一个 HTTP 请求来进行手工检查,并按预期收到:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: qGEgH3En71di5rrssAZTmtRTyFk=
Run Code Online (Sandbox Code Playgroud)

我的问题是,收到该响应后,curl 将挂起。

握手成功后有什么方法可以告诉curl退出吗?

curl websocket

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

寻找节点"util.inherits"的JavaScript实现

我正在实现一个也可以在节点上运行的JavaScript库,我想尽可能多地使用node的API.我的对象发出事件,所以我发现了这个名为eventemitter2的漂亮库,它为JavaScript重新实现了EventEmitter.现在我想为util.inherits找到相同的内容.有人听说过这样的项目吗?

javascript node.js

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