Tag: python

二维数组中的峰值检测

我正在帮助兽医诊所测量狗爪下的压力。 我使用Python进行数据分析,现在我试图将爪子分成(解剖)子区域。 我做了每个爪子的二维数组,每个爪子随着时间的推移装载的每个传感器的最大值。 下面是一个爪子的例子,我用Excel来绘制我想要检测的区域。 这些都是与本地最大值的传感器周围2乘2箱,总共有最大的总和。 所以我尝试了一些实验,并决定只是寻找每个列和行的最大值(由于爪子的形状,不能朝一个方向看)。 这似乎很好地“检测”了单独的脚趾的位置,但它也标记了相邻的传感器。 那么告诉Python哪个最好的是我想要的呢? 注意:2×2方块不能重叠,因为它们必须是分开的脚趾! 另外我还带了2×2作为一个方便,更高级的解决scheme是值得欢迎的,但我只是一个人类运动科学家,所以我既不是一个真正的程序员或math家,所以请保持简单。 这是一个可以用np.loadtxt加载的版本 结果 所以我尝试了@ jextee的解决scheme(见下面的结果)。 正如你所看到的,它在前爪上非常有效,但后腿的效果不太好。 更具体地说,它不能识别第四脚趾的小峰。 这显然是固有的事实,即循环看起来低于最低值,而没有考虑到这一点。 有谁会知道如何调整@ jextee的algorithm,以便它能够find第四个脚趾吗? 由于我还没有处理任何其他的审判,我不能提供任何其他样本。 但是我之前给出的数据是每个爪子的平均值。 这个文件是一个数组,其最大数据量为9个爪子,它们与盘子接触的顺序是这样的。 这幅图像显示了它们是如何在板上空间分布的。 更新: 我已经为所有感兴趣的人build立了博客,并且我已经用所有的原始尺寸设置了SkyDrive。 所以要求更多数据的人:给你更多的权力! 更新: 所以在我的帮助后,我得到了关于爪子检测和爪子sorting的问题 ,终于能够检查每个爪子的脚趾检测! 事实certificate,除了我自己的例子中的那种尺寸的爪子之外,它的效果并不好。 事后看来,如此任意select2x2是我自己的错。 这里有一个很好的例子:一个钉子被认为是一个脚趾,而“脚跟”是如此之宽,它会被认出两次! 爪子太大,所以采取2×2大小没有重叠,导致一些脚趾被检测到两次。 反过来说,小狗往往没有find第五个脚趾,我怀疑是由于2×2面积太大造成的。 在对我所有的测量结果进行了现在的解决之后,我得出了惊人的结论,几乎所有的小型犬都没有find第五只脚趾,而在超过50%的大型狗的影响中,它会发现更多! 很显然,我需要改变它。 我自己的猜测是把neighborhood的大小改变成小狗的大小,大狗的大小。 但是, generate_binary_structure不会让我改变数组的大小。 因此,我希望其他人对脚趾定位有更好的build议,也许脚趾的尺寸与脚掌尺寸有关?

显示子过程输出到标准输出并redirect

我正在通过Python的subprocess模块运行一个脚本。 目前我使用: p = subprocess.Popen('/path/to/script', stdout=subprocess.PIPE, stderr=subprocess.PIPE) result = p.communicate() 然后我将结果打印到标准输出。 这一切都很好,但由于脚本需要很长时间才能完成,所以我希望从脚本实时输出到stdout。 我输出输出的原因是因为我想parsing它。

为什么CPython中的id({})== id({})和id()== id()?

为什么CPython(不知道其他Python实现)具有以下行为? tuple1 = () tuple2 = () dict1 = {} dict2 = {} list1 = [] list2 = [] # makes sense, tuples are immutable assert(id(tuple1) == id(tuple2)) # also makes sense dicts are mutable assert(id(dict1) != id(dict2)) # lists are mutable too assert(id(list1) != id(list2)) assert(id(()) == id(())) # why no assertion error on […]

提取float / double值

如何使用正则expression式从string中提取一个double值。 import re pattr = re.compile(???) x = pattr.match("4.5")

在循环中创buildlambda

可能重复: (lambda)函数闭包在Python中捕获什么? lambda函数不closuresPython中的参数? 我正在尝试在迭代对象列表的循环内创buildlambdas: lambdas_list = [] for obj in obj_list: lambdas_list.append(lambda : obj.some_var) 现在,如果我遍历lambda表,并像这样调用它们: for f in lambdas_list: print f() 我得到相同的价值。 这是obj_list最后一个obj的值,因为这是列表迭代器块中的最后一个variables。 对代码进行一个很好的(pythonic)重写以使其工作的任何想法?

将string转换为variables名称

我有任何string。 像“水牛”一样, x='buffalo' 我想将这个string转换成一些variables名称, buffalo=4 不仅这个例子,我想将任何inputstring转换为一些variables名称。 我应该怎么做(在Python中)?

multithreadingPython应用程序和套接字连接的问题

我正在研究一个运行在具有4G内存的Ubuntu机器上的Python应用程序的问题。 该工具将被用于审计服务器(我们更喜欢滚动我们自己的工具)。 它使用线程连接到许多服务器,许多TCP连接失败。 但是,如果我在启动每个线程之间添加1秒的延迟,则大多数连接都会成功。 我已经使用这个简单的脚本来调查可能发生的事情: #!/usr/bin/python import sys import socket import threading import time class Scanner(threading.Thread): def __init__(self, host, port): threading.Thread.__init__(self) self.host = host self.port = port self.status = "" def run(self): self.sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sk.settimeout(20) try: self.sk.connect((self.host, self.port)) except Exception, err: self.status = str(err) else: self.status = "connected" finally: self.sk.close() def get_hostnames_list(filename): return […]

python绑定和未绑定的方法对象

我试过一些关于绑定和非绑定方法的代码。 当我们打电话给他们时,我想他们俩都会返回对象。 但是当我使用id()获取一些信息时,它返回一些我不明白的东西。 IDE:Eclipse插件:pydev Class C(object): def foo(self): pass cobj = C() print id(C.foo) #1 print id(cobj.foo) #2 a = C.foo b = cobj.foo print id(a) #3 print id(b) #4 和输出是.. 5671672 5671672 5671672 5669368 为什么#1和#2返回相同的ID,是不是他们不同的对象? 如果将C.foo和conj.foo分配给两个variables,#3和#4将返回不同的ID。 我认为#3和#4显示它们不是同一个对象,但#1和#2 … 绑定方法的id和unbound方法有什么区别?

在Python中parsingHTML

如果我不能使用BeautifulSoup或lxml,那么parsingHTML的最佳方法是什么? 我有一些使用SGMLlib的代码,但是它有点低级,现在已经被弃用了。 我宁愿如果它可能会造成一些格式不正确的HTML,虽然我很确定大部分的input将是非常干净的。

Python是否支持MySQL准备好的语句?

我之前在一个PHP项目上做了准备,使SELECT查询的速度提高了20%。 我想知道它是否适用于Python? 我似乎无法find任何具体说明它做或不做的事情。