Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

15
Python的super()如何与多重继承一起使用?
我在Python面向对象编程中非常陌生,并且在理解super()函数(新样式类)时遇到困难,尤其是在涉及多重继承时。 例如,如果您有类似的东西: class First(object): def __init__(self): print "first" class Second(object): def __init__(self): print "second" class Third(First, Second): def __init__(self): super(Third, self).__init__() print "that's it" 我不明白的是:Third()该类会继承这两个构造方法吗?如果是,那么哪个将与super()一起运行,为什么? 如果要运行另一台呢?我知道这与Python方法解析顺序(MRO)有关。

30
如何更改DataFrame列的顺序?
我有以下DataFrame(df): import numpy as np import pandas as pd df = pd.DataFrame(np.random.rand(10, 5)) 我通过分配添加了更多列: df['mean'] = df.mean(1) 如何将列mean移到最前面,即将其设置为第一列,而其他列的顺序保持不变?
875 python  pandas  dataframe 

24
如何使用Python通过HTTP下载文件?
我有一个小的实用程序,可以用来按计划从网站上下载MP3文件,然后构建/更新已添加到iTunes的播客XML文件。 创建/更新XML文件的文本处理是用Python编写的。但是,我在Windows内使用wget.bat文件中下载实际的MP3文件。我希望使用Python编写整个实用程序。 我努力寻找一种方法来实际使用Python下载文件,因此为什么我诉诸于使用 wget。 那么,如何使用Python下载文件?
874 python  http  urllib 

22
二维阵列中的峰检测
我正在帮助兽医诊所测量狗爪下的压力。我使用Python进行数据分析,但现在我一直试图将爪子分成(解剖)子区域。 我制作了每个爪子的2D数组,其中包含爪子随时间推移已加载的每个传感器的最大值。这是一个爪子的示例,我使用Excel绘制了要“检测”的区域。这些是传感器周围具有最大最大值的2 x 2框,它们的总和最大。 因此,我尝试了一些实验,并决定只查找每一列和每一行的最大值(由于爪子的形状而不能朝一个方向看)。这似乎可以很好地“检测”到各个脚趾的位置,但是它也标记了相邻的传感器。 那么,告诉Python我想要这些最大值中的哪一个是最好的方法呢? 注意:2x2的正方形不能重叠,因为它们必须是单独的脚趾! 同样我以2x2为方便,欢迎使用任何更高级的解决方案,但我只是人类运动的科学家,所以我既不是真正的程序员也不是数学家,所以请保持“简单”。 这是可以加载的版本np.loadtxt 结果 因此,我尝试了@jextee的解决方案(请参见下面的结果)。如您所见,它在前爪上非常有效,但在后腿上效果较差。 更具体地说,它无法识别出第四脚趾的小峰。显然,这是循环固有的固有观点,即循环从上到下朝向最低值,而不考虑此位置。 谁会知道如何调整@jextee的算法,以便它也能够找到第四个脚趾? 由于我尚未处理其他任何试验,因此无法提供其他任何样品。但是我之前提供的数据是每只爪子的平均值。该文件是一个数组,其中最大9爪的数据按它们与板接触的顺序排列。 此图显示了它们如何在空间上分布在板上。 更新: 我已经为有兴趣的任何人建立了博客,并为SkyDrive设置了所有原始测量值。因此,对于任何需要更多数据的人:给您更多的权力! 新更新: 因此,在获得帮助后,我遇到了有关爪子检测和爪子分类的问题,我终于能够检查每个爪子的脚趾检测!事实证明,除了爪子大小像我自己的示例中的爪子一样,它在任何情况下都无法正常工作。事后看来,如此随意地选择2x2是我自己的错。 这是一个出问题的好例子:指甲被识别为脚趾,而“脚跟”是如此之宽,被识别两次! 脚掌太大,因此尺寸为2x2,没有重叠,会导致两次检测到一些脚趾。相反,在小型犬中,它通常找不到第5个脚趾,我怀疑这是2x2区域太大造成的。 在尝试所有测量的当前解决方案后得出了一个惊人的结论:几乎对我所有的小型犬来说,它都找不到第五个脚趾,而在大型犬的50%以上的撞击中,它会发现更多! 所以很明显我需要更改它。我自己的猜测是将其大小更改为neighborhood较小的大小(对于小型狗)和较大的大小(对于大型狗)。但是generate_binary_structure不允许我更改数组的大小。 因此,我希望其他人对脚趾的定位有更好的建议,也许脚趾的面积与爪子的大小成正比?

16
如何安装带有.whl文件的Python软件包?
我在Windows机器上安装Python软件包时遇到问题,想与Christoph Gohlke的Window二进制文件一起安装。(根据我的经验,这减轻了许多其他软件包安装的麻烦)。但是,仅.whl文件可用。 http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 但是,如何安装.whl文件? 笔记 我已经找到了车轮上的文档,但是它们在解释如何安装.whl文件时似乎并不那么简单。 该问题与该问题重复,但未直接回答。

25
向pandas DataFrame添加一行
我知道pandas旨在加载完全填充的内容,DataFrame但是我需要创建一个空的DataFrame然后逐行添加行。做这个的最好方式是什么 ? 我成功创建了一个空的DataFrame: res = DataFrame(columns=('lib', 'qty1', 'qty2')) 然后,我可以添加新行,并使用以下字段填充字段: res = res.set_value(len(res), 'qty1', 10.0) 它有效,但看起来很奇怪:-/(添加字符串值失败) 如何将新行添加到DataFrame(具有不同的列类型)?

24
获取字典中具有最大值的键?
我有一个dictionary:键是字符串,值是整数。 例: stats = {'a':1000, 'b':3000, 'c': 100} 我想得到'b'一个答案,因为它是具有更高价值的关键。 我使用带有反向键值元组的中间列表进行了以下操作: inverse = [(value, key) for key, value in stats.items()] print max(inverse)[1] 那是更好(或更优雅)的方法吗?
866 python  dictionary  max 

6
如何并行地遍历两个列表?
我在Python中有两个可迭代的对象,我想成对地遍历它们: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b 它应导致: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 一种方法是遍历索引: for i in xrange(len(foo)): print "f: ", foo[i], "; b: ", …


14
列表理解与lambda +过滤器
我碰巧发现自己有一个基本的过滤需求:我有一个列表,并且必须按项目的属性对其进行过滤。 我的代码如下所示: my_list = [x for x in my_list if x.attribute == value] 但是后来我想,这样写会更好吗? my_list = filter(lambda x: x.attribute == value, my_list) 它更具可读性,并且如果需要性能,可以将lambda取出以获取收益。 问题是:使用第二种方法是否有警告?有任何性能差异吗?我是否完全想念Pythonic Way™,应该以另一种方式来做到这一点(例如,使用itemgetter而不是lambda)吗?

20
如何复制字典并仅编辑副本
有人可以向我解释一下吗?这对我来说毫无意义。 我将字典复制到另一个字典中,然后编辑第二个字典,并且两者都已更改。为什么会这样呢? >>> dict1 = {"key1": "value1", "key2": "value2"} >>> dict2 = dict1 >>> dict2 {'key2': 'value2', 'key1': 'value1'} >>> dict2["key2"] = "WHY?!" >>> dict1 {'key2': 'WHY?!', 'key1': 'value1'}

30
错误:找不到vcvarsall.bat
我试图安装Python软件包dulwich: pip install dulwich 但是我收到了一个神秘的错误消息: error: Unable to find vcvarsall.bat 如果我尝试手动安装软件包,也会发生相同的情况: > python setup.py install running build_ext building 'dulwich._objects' extension error: Unable to find vcvarsall.bat

18
如何删除/删除不为空的文件夹?
尝试删除不为空的文件夹时,出现“访问被拒绝”错误。我尝试使用以下命令:os.remove("/folder_name")。 删除/删除不为空的文件夹/目录的最有效方法是什么?
846 python  file 

3
为什么Python代码在函数中运行得更快?
def main(): for i in xrange(10**8): pass main() Python中的这段代码在其中运行(注意:计时是通过Linux中的BASH中的time函数完成的。) real 0m1.841s user 0m1.828s sys 0m0.012s 但是,如果for循环未放在函数中, for i in xrange(10**8): pass 那么它会运行更长的时间: real 0m4.543s user 0m4.524s sys 0m0.012s 为什么是这样?

30
如何使可序列化的JSON类
如何使Python类可序列化? 一个简单的类: class FileItem: def __init__(self, fname): self.fname = fname 我应该怎么做才能获得输出: >>> import json >>> my_file = FileItem('/foo/bar') >>> json.dumps(my_file) TypeError: Object of type 'FileItem' is not JSON serializable 没有错误

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.