小编tdc*_*tdc的帖子


如何使用Python找到Wally?

无耻地跳上潮流:-)

灵感来自我如何找到带有Mathematica的Waldo和后续如何找到Waldo with R,作为一个新的python用户,我很想知道如何做到这一点.看起来python比R更适合这个,我们不必像Mathematica或Matlab那样担心许可证.

在下面的例子中,显然只使用条纹是行不通的.如果能够制定一个简单的基于规则的方法来处理诸如此类的困难例子,那将会很有趣.

在沙滩上

我已经添加了[机器学习]标签,因为我认为正确的答案必须使用ML技术,例如Gregory Klopper在原始主题中提倡的Restricted Boltzmann Machine(RBM)方法.python中有一些RBM代码可能是一个很好的起点,但显然需要训练数据.

2009年IEEE国际信号处理机器学研讨会(MLSP 2009)上,他们举办了数据分析竞赛:Wally在哪里?.训练数据以matlab格式提供.请注意,该网站上的链接已经死亡,但是数据(以及Sean McLoone及其同事采用的方法的来源可以在这里找到(参见SCM链接).看起来像是一个开始的地方.

python machine-learning image-processing computer-vision

81
推荐指数
1
解决办法
1万
查看次数

HDF5观众/编辑linux

HDFVIEW相当不错,但还有其他选择吗?

能够改变诸如分块/压缩设置之类的东西会很棒 - hdfview没有这个功能 - 无需使用Java/python /其他任何东西来加载文件.

viewer hdf5

20
推荐指数
1
解决办法
3万
查看次数

在python中反向排序和argsort

我正在尝试用Python编写一个函数(仍然是一个noob!),它返回由tfidf分数的内积所排序的索引和分数.程序是:

  • 在doc idx和所有其他文档之间计算内部产品的向量
  • 按降序排序
  • 将"得分"和指数从第二个返回到结尾(即不是自身)

我目前的代码是:

import h5py
import numpy as np

def get_related(tfidf, idx) :
    ''' return the top documents '''

    # calculate inner product   
    v = np.inner(tfidf, tfidf[idx].transpose())

    # sort
    vs = np.sort(v.toarray(), axis=0)[::-1]
    scores = vs[1:,]

    # sort indices
    vi = np.argsort(v.toarray(), axis=0)[::-1]
    idxs = vi[1:,] 

    return (scores, idxs)
Run Code Online (Sandbox Code Playgroud)

这里tfidf是一个sparse matrix of type '<type 'numpy.float64'>'.

这似乎效率低下,因为排序执行了两次(sort()然后argsort()),结果必须反过来.

  • 这可以更有效地完成吗?
  • 这可以在不使用转换稀疏矩阵的情况下完成toarray()吗?

python information-retrieval numpy scipy sparse-matrix

14
推荐指数
1
解决办法
3万
查看次数

使用grep在xml标记内获取文本

现在是星期五下午,我的大脑已冻结了!

grep -E -m 1 -o "<title>(.*)</title>" myfile.rss
Run Code Online (Sandbox Code Playgroud)

回报

<title>Some title</title>
Run Code Online (Sandbox Code Playgroud)

我怎么才能得到Some title

regex tags bash grep

13
推荐指数
1
解决办法
3万
查看次数

关闭ipython中的所有打开文件

有时使用ipython时,您可能会在以写入模式打开文件的函数中遇到异常.这意味着下次运行该函数时会出现值错误,

ValueError:文件'filename'已经打开.请在写入模式下重新打开之前关闭它.

但是,由于函数被淘汰,文件句柄(在函数内部创建)将丢失,因此无法关闭.绕过它的唯一方法似乎是关闭ipython会话,此时你会收到消息:

关闭剩余的打开文件:filename ... done

有没有办法指示ipython关闭文件而不退出会话?

python filehandle ipython

12
推荐指数
2
解决办法
2万
查看次数

使用pytables,效率更高:scipy.sparse还是numpy密集矩阵?

使用时pytables,对于scipy.sparse矩阵格式没有支持(据我所知),所以要存储矩阵我必须做一些转换,例如

def store_sparse_matrix(self):
    grp1 = self.getFileHandle().createGroup(self.getGroup(), 'M')
    self.getFileHandle().createArray(grp1, 'data', M.tocsr().data)
    self.getFileHandle().createArray(grp1, 'indptr', M.tocsr().indptr)
    self.getFileHandle().createArray(grp1, 'indices', M.tocsr().indices)

def get_sparse_matrix(self):
    return sparse.csr_matrix((self.getGroup().M.data, self.getGroup().M.indices, self.getGroup().M.indptr))
Run Code Online (Sandbox Code Playgroud)

麻烦的是该get_sparse函数需要一些时间(从磁盘读取),如果我理解正确也需要数据适合内存.

唯一的其他选择似乎是将矩阵转换为密集格式(numpy array)然后pytables正常使用.然而,这似乎是相当低效的,虽然我想也许pytables会处理压缩本身?

python numpy scipy sparse-matrix pytables

9
推荐指数
1
解决办法
1947
查看次数

如何将python词典存储在pytables中?

pytables本身不支持python词典.我接近它的方法是创建一个表单的数据结构:

tables_dict = {
'key'         : tables.StringCol(itemsize=40),
'value'       : tables.Int32Col(),
}
Run Code Online (Sandbox Code Playgroud)

(请注意,我确保密钥长度小于40个字符),然后使用此结构创建表:

file_handle.createTable('/', 'dictionary', tables_dict)
Run Code Online (Sandbox Code Playgroud)

然后用以下内容填充:

file_handle.dictionary.append(dictionary.items())
Run Code Online (Sandbox Code Playgroud)

和检索数据:

dict(file_handle.dictionary.read())
Run Code Online (Sandbox Code Playgroud)

这样做没问题,但重读字典非常慢.我认为问题是该read()函数导致整个字典被加载到内存中,这实际上并不是必需的.有一个更好的方法吗?

python dictionary pytables

9
推荐指数
1
解决办法
3008
查看次数

从ipython解释器而不是命令行运行模块

我正在开发一个包,我的结构如下:

 mypackage/
    __init__.py
    __main__.py
    someotherstuff.py
    test/
        __init__.py
        testsomeotherstuff.py
Run Code Online (Sandbox Code Playgroud)

我已经设置好 .py函数运行一些单元测试,python mypackage从命令行执行工作正常.然而,我经常想使用ipython首次亮相,但是从解释器中,run mypackage给出了错误ERROR: File 'mypackage.py' not found.我可以手动运行它run mypackage/__main__.py但不知何故这似乎是错误的.我还应该做些什么才能正确设置它?

python packages ipython

7
推荐指数
1
解决办法
2699
查看次数

sql server 2012:无法更改登录sa

我正在尝试使用SSMS版本11.0.2100.60在本地计算机上创建数据库.我以管理员身份运行应用程序,使用Windows身份验证登录,并且我已将MYDOMAIN\my-username添加到登录.但是,如果我尝试使用此登录创建数据库,我会收到消息

CREATE DATABASE permission denied in database 'master'. (Microsoft SQL Server, Error: 262)
Run Code Online (Sandbox Code Playgroud)

如果我尝试将privelage dbcreator添加到我的用户,我会收到以下错误.

User does not have permission to perform this action. (Microsoft SQL Server, Error: 15247)
Run Code Online (Sandbox Code Playgroud)

我无法以sa身份登录,因为我不知道/记住密码(是否有预设的默认设置?),如果我尝试更改密码,我会收到消息:

Cannot alter the login 'sa', because it does not exist or you do not have permission. (Microsoft SQL Server, Error: 15151)
Run Code Online (Sandbox Code Playgroud)

最后我注意到帐户'sa'被禁用,如果我尝试启用它,我会得到与以前相同的错误.有没有办法解决这个问题,还是需要重新安装?

版本信息:

Microsoft SQL Server Management Studio                      11.0.2100.60
Microsoft Analysis Services Client Tools                        11.0.2100.60
Microsoft Data Access Components (MDAC)                     6.2.9200.16384
Microsoft MSXML                     3.0 4.0 6.0 
Microsoft Internet Explorer                     9.10.9200.16635 …
Run Code Online (Sandbox Code Playgroud)

ssms sql-server-2012-express

7
推荐指数
2
解决办法
4万
查看次数