昨天我重新安装了我的Mac OS X 10.8,在重新安装之前我的机器上安装了python2.7.5和python3.3.2并且工作正常,但是在重新安装系统后我无法再次打开python3.所以我下载了Python3的DMG包并重新安装它,但它仍然在终端中引发了这个异常:
Fatal Python error: Py_Initialize: unable to load the file system codec
File"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)
然后出现了一个系统问题报告窗口:它说:
Process: Python [51780]
Path: /Library/Frameworks/Python.framework/Versions/3.3/Resources/Python.app/Contents/MacOS/Python
Identifier: Python
Version: 3.3.2 (3.3.2)
Code Type: X86-64 (Native)
Parent Process: bash [51586]
User ID: 501
Date/Time: 2013-09-23 00:40:19.908 +0800
OS Version: Mac OS X 10.8.5 (12F37)
Report Version: 10
Interval Since Last Report: 77033 sec
Crashes Since Last Report: 1982088234
Per-App Crashes Since Last Report: 4 …Run Code Online (Sandbox Code Playgroud) 假设我有两个共享相同索引的数据帧,df1和df2.df1按照我希望df2排序的顺序排序.
df=pd.DataFrame(index=['Arizona','New Mexico', 'Colorado'],columns=['A','B','C'], data=[[1,2,3],[4,5,6],[7,8,9]])
print df
A B C
Arizona 1 2 3
New Mexico 4 5 6
Colorado 7 8 9
df2=pd.DataFrame(index=['Arizona','Colorado', 'New Mexico'], columns=['D'], data=['Orange','Blue','Green'])
print df2
D
Arizona Orange
Colorado Blue
New Mexico Green
Run Code Online (Sandbox Code Playgroud)
通过第一个数据框的索引对第二个数据帧进行排序的最佳/最有效方法是什么?
一个选项是加入它们,排序,然后删除列:
df.join(df2)[['D']]
D
Arizona Orange
New Mexico Green
Colorado Blue
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式吗?
谢谢!
提前抱歉,如果我误用了任何条款,请随时纠正.
我有一个排序数组dtype '<f16, |S30'.当我searchsorted在它的第一个字段上使用时,它的工作速度非常慢(对于300万个项目,大约需要0.4秒).这比bisect在元组的普通Python列表上做同样的事情要长得多.
%timeit a['f0'].searchsorted(400.)
1 loops, best of 3: 398 ms per loop
Run Code Online (Sandbox Code Playgroud)
但是,如果我将float部分复制到另一个单独的数组,则搜索速度快于bisect:
b = a['f0'].copy()
%timeit b.searchsorted(400.)
1000000 loops, best of 3: 945 ns per loop
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我想用lxml.etreePython 解析一个巨大的xml(> 200MB).我试图用来etree.parse加载XML文件,但由于文件大小,这不起作用:
etree.parse('file.xml')Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lxml.etree.pyx", line 2706, in lxml.etree.parse (src/lxml/lxml.etree.c:49958)
File "parser.pxi", line 1500, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:71797)
File "parser.pxi", line 1529, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:72080)
File "parser.pxi", line 1429, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:71175)
File "parser.pxi", line 975, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:68173)
File "parser.pxi", line 539, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:64257)
File "parser.pxi", line 625, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:65178)
File "parser.pxi", line 565, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:64521)
lxml.etree.XMLSyntaxError: Excessive depth in document: 256 …Run Code Online (Sandbox Code Playgroud) 我已经看过这个主题的其他帖子,但没有找到一个明确的答案,尽管我确信它很简单.
我的代码有以下结构......
import matplotlib
...
...
class xyz:
def function_A(self,...)
...
...
fig1 = matplotlib.figure()
...
...
Run Code Online (Sandbox Code Playgroud)
我从'xyz'的实例调用'function_A',当我这样做时,我收到错误消息:
AttributeError: 'module' object has no attribute 'figure'
Run Code Online (Sandbox Code Playgroud)
根据我读过的帖子,我导入matplotlib的方式似乎有问题,但我无法解决它.我曾尝试Function_A定义中导入它(我认为这是坏的形式,但我想测试),但我仍然是同样的错误.
我在其他地方使用了我的'function_A'代码没有问题,但它只是模块中的一个函数,而不是类中的方法.
任何帮助表示赞赏!
我正在寻找一种优雅的方法来从Python字典中提取一些值到本地值.
与此相当的东西,但对于更长的值列表更清晰,以及更长的键/变量名称:
d = { 'foo': 1, 'bar': 2, 'extra': 3 }
foo, bar = d['foo'], d['bar']
Run Code Online (Sandbox Code Playgroud)
我原本希望得到以下内容:
foo, bar = d.get_tuple('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)
我可以轻松编写一个不错的函数:
def get_selected_values(d, *args):
return [d[arg] for arg in args]
foo, bar = get_selected_values(d, 'foo', 'bar')
Run Code Online (Sandbox Code Playgroud)
但我一直怀疑还有一些其他的内置方式.
我目前正在记录整个模块autodoc.但是,我在模块级别定义了几个包含长列表或dicts的变量.它们与值一起包含在文档中,并且值未格式化,因此看起来像10行混乱.我想要的是包含那些变量的docstring,但是要省略值或至少很好地格式化.
我试图从automodule指令中排除变量并添加它:
.. automodule:: foo.bar
:members:
:exclude-members: longstuff
.. py:data:: longstuff
Run Code Online (Sandbox Code Playgroud)
这导致只包含变量名,而文档字符串和值longstuff都没有出现在文档中.
如何保持文档字符串并同时删除值(或者格式良好)?提前致谢.
我一直在阅读python中的魔术方法,我发现了很多关于覆盖它们以及它们服务的目的的信息,但我无法找到语言特定的操作符和操作映射到那些的位置方法(+寻找__add__,+=寻找__iadd__,创建从一个类的新对象可能调用__new__和__init__等)有没有什么地方我可以看到在Python解释器(或任何下级机构)遇到一个加号,会发生什么?
我有一种情况,我想用Python来解决这个问题,但不幸的是我对图表知之甚少.我找到了一个看起来非常适合这个相对简单的任务的库networkx,但是我遇到的问题是我想做的事情,这应该是相当简单的.
我有一个节点列表,可以有不同的类型,以及两个"类"的邻居,向上和向下.任务是在两个目标节点之间找到路径,并考虑到一些约束:
所以,我尝试了一些实验,但正如我所说,我一直在努力.首先,我不确定这实际代表什么类型的图表?它不是方向性的,因为从节点1到节点2,或从节点2到节点1无关紧要(除了在最后一个场景中,因此使事情复杂化......).这意味着我不能只创建一个简单的多向图形,因为我必须考虑到这个约束.其次,我必须遍历这些节点,但指定只有特定类型的节点必须可用于路径.此外,如果最后一个场景发生,我必须记住进入和退出类/方向,这使它处于某种有针对性的状态.
这是一些示例模型代码:
import networkx as nx
G=nx.DiGraph()
G.add_node(1, type=1)
G.add_node(2, type=2)
G.add_node(3, type=3)
G.add_edge(1,2, side="up")
G.add_edge(1,3, side="up")
G.add_edge(2,1, side="down")
G.add_edge(2,3, side="down")
for path in nx.all_simple_paths(G,1,3):
print path
Run Code Online (Sandbox Code Playgroud)
输出相当不错,但我需要这些约束.那么,您是否有一些建议如何实现这些,或者给我一些关于理解这类问题的指导,或者针对这个问题提出不同的方法或库?也许一个简单的基于字典的算法适合这种需要?
谢谢!
我有白色背景和简单形状的图像(每个图像有一个形状).我想确定某个点(x,y)是否在形状内部.我怎么能用opencv做到这一点?