我正在尝试在OS X 10.8.4上运行matplotlib并运行.我已经安装了matplotlib和依赖项(libping,freetype,numpy,scipy).我能够很好地导入matplotlib.但是,如果我尝试导入matplotlib.pyplot,它就会挂起.没有错误,只是没有任何反应.
>>> import matplotlib.pyplot
Run Code Online (Sandbox Code Playgroud)
......我已经等了20分钟,没有任何反应.我使用的是1.2.1版本,但即使卸载并尝试了1.2.0版本,但无济于事.我已经在matplotlib.pyplot上看到了关于导入错误的一些问题,但没有任何关于它的问题.然后,我尝试使用Enthought/Canopy python发行版使其工作,但同样,同样悬而未决的问题.如果我杀了导入,这就是我看到的:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/pyplot.py", line 26, in <module>
from matplotlib.figure import Figure, figaspect
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/figure.py", line 34, in <module>
import matplotlib.colorbar as cbar
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/colorbar.py", line 29, in <module>
import matplotlib.collections as collections
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/collections.py", line 23, in <module>
import matplotlib.backend_bases as backend_bases
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 37, in <module>
import matplotlib.widgets as widgets
File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/widgets.py", line 17, in <module>
from lines import Line2D …Run Code Online (Sandbox Code Playgroud) 我正在研究一个应用程序,它试图将一组潜在的"混乱"实体名称与参考列表中的"清理"实体名称进行匹配.我一直在使用编辑距离和其他常见的模糊匹配算法,但我想知道是否有更好的方法允许术语加权,这样在模糊匹配中常用术语的权重较小.
考虑这个例子,使用Python的difflib库.我正在使用组织名称,它们有许多共同的标准化组件,因此不能用于区分实体.
from difflib import SequenceMatcher
e1a = SequenceMatcher(None, "ZOECON RESEARCH INSTITUTE",
"LONDON RESEARCH INSTITUTE")
print e1a.ratio()
0.88
e1b = SequenceMatcher(None, "ZOECON", "LONDON")
print e1b.ratio()
0.333333333333
e2a = SequenceMatcher(None, "WORLDWIDE SEMICONDUCTOR MANUFACTURING CORP",
"TAIWAN SEMICONDUCTOR MANUFACTURING CORP")
print e2a.ratio()
0.83950617284
e2b = SequenceMatcher(None, "WORLDWIDE",
"TAIWAN")
print e2b.ratio()
0.133333333333
Run Code Online (Sandbox Code Playgroud)
这两个例子都高度在比分上满弦,因为RESEARCH,INSTITUTE,SEMICONDUCTOR,MANUFACTURING,和CORP高频率,在许多组织名称的通用术语.我正在寻找关于如何将术语频率整合到模糊字符串匹配(不一定使用difflib)中的任何想法,这样得分不受常见术语的影响,结果看起来更像是"e1b"和"e2b" " 例子.
我意识到我可以制作一个大的"常用术语"列表并将其排除在比较之外,但我想尽可能使用频率,因为即使是常用词也会添加一些信息,当然任何列表的截止点也是如此是任意的.
这可能是基本的,但我找不到解决方案.我有一个字符串,例如,
s = 'a,b,c,d'
Run Code Online (Sandbox Code Playgroud)
我想将逗号转换为制表符.但是使用.replace,例如,
s.replace(',', '\t')
Run Code Online (Sandbox Code Playgroud)
给我
>>> s.replace(',', '\t')
'a\tb\tc\td'
Run Code Online (Sandbox Code Playgroud)
我也尝试转换为列表,然后添加带有.join的选项卡,例如,
'\t'.join(s.split(','))
Run Code Online (Sandbox Code Playgroud)
但是这给出了相同的结果.如何将标签实际插入标签?
我正在尝试使用python中的MySQLdb连接到远程服务器上的MySQL数据库.问题是首先我需要SSH到主机,然后从那里,我需要连接到MySQL服务器.但是,我遇到的问题是MySQLdb似乎没有办法在连接到SQL服务器之前建立SSH连接.我检查了文档,但没有运气.
这是我连接的方式:
conn = MySQLdb.connect(host = 'mysqlhost.domain.com:3306', user = 'user', passwd = 'password', db = 'dbname')
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是这样的:
conn = MySQLdb.connect(sshhost = 'sshhost.domain.com', sshuser = 'sshusername', sshpasswd = 'sshpasswd', host = 'mysqlhost.domain.com:3306', user = 'user', passwd = 'password', db = 'dbname')
Run Code Online (Sandbox Code Playgroud)
这当然只是弥补了.有人可以提出任何建议吗?
我有一个程序从.csv读取数据并创建一个multimap.我在下面粘贴了一个简单的版本.它运行正常,但在退出时运行得非常慢(即,一旦程序打印出输出并进入return 0;.我正在处理相对较大的文件,例如,从50到几百兆的任何地方.退出的延迟,不出所料,与文件大小成比例.
我想知道是否有办法加快退出?我的猜测是它很慢,因为它正在从内存中清除数据. CTRL+c然而,在终端窗口中立即将其关闭.我看了,但没有找到太多.
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
int main (int argc, char* argv[])
{
std::string filename = "edge_data_mid.csv";
// obtain multimaps
std::ifstream fin;
fin.open(filename.c_str(), std::ios_base::in|std::ios_base::binary);
if (!fin.is_open()) {
std::cout << "could not open the file '" << filename << "'" << std::endl;
exit(EXIT_FAILURE);
}
std::multimap<std::string, std::string> gciting;
std::string line;
// this loop parses the file one line at a time
while (getline(fin, line)) {
std::istringstream linestream(line); …Run Code Online (Sandbox Code Playgroud)