我正在使用scipy.fft一个信号,用一个移动窗口绘制频率随时间变化的幅度(这里是一个例子,时间在X上,频率在Y上,振幅是颜色).
但是,只有少数频率让我感兴趣(仅限3,4个频率).使用FFT,似乎我不能只选择我想要的频率(因为显然频率范围是由算法确定的),所以我计算了很多无用的东西,MemoryError如果信号也是如此,我的程序甚至会崩溃长.
我该怎么办 ?我是否必须使用自定义傅立叶变换 - 在这种情况下,欢迎良好实现的链接 - 或者是否有scipy办法?
编辑
在@jfaller回答之后,我决定(尝试)实现Goertzel算法.我想出了这个:https://gist.github.com/4128537 但它不起作用(频率440没有出现,没关系峰值,我没有费心去应用一个合适的窗口).任何帮助!?我对DSP不好.
我正在尝试子类化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 int或XML 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) 我有一个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)
编辑我当然可以(正如在其他类似问题中所建议的那样)尝试连接到该端口并查看是否有人在听.但这并不能证明我使用的特定实例正在倾听.只是有些服务正在那里听.
我想把这个查询从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中遇到问题,我找不到任何干净的解决方案......
在调用某些方法时,我想在方法执行之前和之后执行一些代码.按顺序(在许多其他事项中)自动设置和清理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) 不久前,我注意到当将映射编码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 文档等等,但没有找到关于如何处理空值的信息。有人可以给我指点吗???
我正在使用 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类似的问题,但这并没有给出任何令人满意的答案(见评论)。
在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命令行声音播放器可以做到这一点?
我正在尝试使用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退出吗?
我正在实现一个也可以在节点上运行的JavaScript库,我想尽可能多地使用node的API.我的对象发出事件,所以我发现了这个名为eventemitter2的漂亮库,它为JavaScript重新实现了EventEmitter.现在我想为util.inherits找到相同的内容.有人听说过这样的项目吗?