小编Pie*_*oni的帖子

如何找到一组的所有子集,只有n个元素?

我正在用Python编写程序,我意识到我需要解决的一个问题需要我,给定一个Sn元素(| S | = n)的集合来测试某个顺序的所有可能子集上的函数m(即m元素数量).要使用答案生成部分解,然后再次使用下一个阶m = m + 1,直到m = n.

我正在编写表单的解决方案:

def findsubsets(S, m):
    subsets = set([])
    ...
    return subsets
Run Code Online (Sandbox Code Playgroud)

但是知道Python我希望解决方案已经存在.

完成此任务的最佳方法是什么?

python

68
推荐指数
4
解决办法
11万
查看次数

pip:找不到激活的virtualenv(必填)

我想在mac osx 10.8.3上安装virtualenv和/或virtualenvwrapper

过去两天我一直在和python战斗.最后我能够使用brew安装python 2.7.4.在使用easy_install安装virtualenv之前.然后我尝试卸载它,试图使我的计算机与我的同事一样.也许我成功地卸载了它,也许不是.我不知道如何测试它.现在我应该使用 - 安装virtualenv -

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

但它给了我 -

Could not find an activated virtualenv (required).
Run Code Online (Sandbox Code Playgroud)

pip install virtualenvwrapper 给出完全相同的输出.

变量:PIP_RESPECT_VIRTUALENV是null:

echo $PIP_RESPECT_VIRTUALENV
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

谢谢

python pip virtualenv osx-mountain-lion

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

从PHP中的关联数组中弹出键和值

设S是PHP中的关联数组,我需要从中检索并提取第一个元素,包括值和键.

我会用

value1=array_pop(S);
Run Code Online (Sandbox Code Playgroud)

但它只给了我价值.

我可以用

K=array_keys(S);
key1=array_pop(K);
value1=array_pop(S);
Run Code Online (Sandbox Code Playgroud)

但它很复杂,因为它需要有两份相同的数据.由于数组本身是数组数组中的元素,因此令人困惑.在提取它时,必须有一种更优雅的方式来读取这对键/值.

php associative-array

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

如何在Python中集群图形?

设G是图.所以G是一组节点和一组链接.我需要找到一种快速分割图形的方法.我现在正在使用的图表只有120*160个节点,但我可能很快会在另一个上下文(不是医学,但是网站开发)中处理同等问题,有数百万个节点.

所以,我所做的是将所有链接存储到图表矩阵中:

M=numpy.mat(numpy.zeros((len(data.keys()),len(data.keys()))))
Run Code Online (Sandbox Code Playgroud)

如果节点s连接到节点t,则M在位置s,t中保持1.我确保M是对称的M [s,t] = M [t,s],并且每个节点链接到它自己M [s,s] = 1.

如果我记得很好,如果我将M与M相乘,则结果是一个矩阵,表示连接通过两个步骤到达的顶点的图形.

因此,我继续将M自身与M一起使用,直到矩阵中的零数不再减少为止.现在我有连接组件的列表.现在我需要对这个矩阵进行聚类.

到目前为止,我对算法非常满意.我认为它简单,优雅,而且速度相当快.我在这部分遇到了麻烦.

基本上我需要将此图拆分为其连接的组件.

我可以浏览所有节点,看看它们连接的是什么.

但是如何排序矩阵重新排序.但我不知道是否可以这样做.

以下是目前的代码:

def findzeros(M):
    nZeros=0
    for t in M.flat:
        if not t:
            nZeros+=1
    return nZeros

M=numpy.mat(numpy.zeros((len(data.keys()),len(data.keys()))))    
for s in data.keys():
    MatrixCells[s,s]=1
    for t in data.keys():
        if t<s:
            if (scipy.corrcoef(data[t],data[s])[0,1])>threashold:
                M[s,t]=1
                M[t,s]=1

nZeros=findzeros(M)
M2=M*M
nZeros2=findzeros(M2)

while (nZeros-nZeros2):
    nZeros=nZeros2
    M=M2
    M2=M*M
    nZeros2=findzeros(M2)
Run Code Online (Sandbox Code Playgroud)

编辑:

有人建议我使用SVD分解.以下是5x5图表上问题的简单示例.我们将使用这个,因为19200x19200方阵并不容易看到簇.

import numpy
import scipy

M=numpy.mat(numpy.zeros((5,5)))

M[1,3]=1
M[3,1]=1
M[1,1]=1
M[2,2]=1
M[3,3]=1
M[4,4]=1
M[0,0]=1

print M

u,s,vh = numpy.linalg.linalg.svd(M)
print u
print s
print …
Run Code Online (Sandbox Code Playgroud)

python sorting graph-theory cluster-analysis matrix

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

搁置对于大型词典来说太慢了,我该怎么做才能提高性能?

我使用python存储一个表,我需要持久性.

基本上我将表作为字典字符串存储到数字中.整个存放与搁置

self.DB=shelve.open("%s%sMoleculeLibrary.shelve"%(directory,os.sep),writeback=True) 
Run Code Online (Sandbox Code Playgroud)

我用writeback,True因为我发现如果不这样做,系统往往会不稳定.

在计算之后,系统需要关闭数据库并将其存储回来.现在数据库(表格)大约是540MB,而且需要很长时间.桌子增长到大约500MB后,时间爆炸了.但我需要一张更大的桌子.事实上我需要其中两个.

我可能正在使用错误的持久性形式.我该怎么做才能提高性能?

python database performance persistence shelve

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

比较PHP中的数组,而不关心订单

我有两个数组,$ a和$ b,需要检查它们是否包含完全相同的元素(与顺序无关).我正在考虑使用

if (sizeof($a)==sizeof($b) AND array_diff($a,$b)==array())
{

}
Run Code Online (Sandbox Code Playgroud)

但我是PHP的新手,所以我想知道:有更好的方法吗?

因为我需要将它们用作集合,所以我可能根本不应该使用数组而是其他东西.

php arrays comparison set

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

我如何精通Python?

一旦您学习了Python中的基本命令,您通常就能够解决您遇到的大多数编程问题.但是这样做的方式并不是真正的Python-ic.常见的是使用经典的c ++或Java心态来解决问题.但Python不止于此.它包含功能编程; 有很多图书馆; 面向对象,以及自己的方式.简而言之,通常会有更好,更短,更快,更优雅的方式来做同样的事情.

这有点像学习一门新语言.首先你要学习单词和语法,但是你需要流利.

一旦学会了语言,你如何熟练掌握Python?你是怎么做到的?什么书主要帮助?

python

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

如何从一组图像中编写电影的脚本?

我设法使用Python加载了一组图像.

我希望我的脚本能够拍摄这一系列图像(以我需要的任何格式),并从中创建视频.所有这一切的最大限度是我正在寻找一些简单易用的安装方法.理想情况下,使用标准OS X安装过程:

  • 下载.dmg
  • 点击
  • 进入应用程序文件夹

我不想花费很多精力来安装视频编辑程序.只是一些简单的工作.


问题

  1. 我的目标是什么格式?我需要我的视频可以在Linux,Mac和Windows系统上播放.图像是图形,所以我们说的是谨慎的图像,而不是照片.压缩它应该很容易.将有大约1000张图片,所以这将是一部短片.

  2. 我应该使用哪些工具来制作实际视频?我需要使用为此目的设计的库直接从Python中执行此操作,或者通过脚本编写从Python调用的命令行工具.

python macos video

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

使用graphviz绘制晶格时,如何在节点上强加y位置?

我正在使用Graphviz绘制一个点阵.
节点是一组数字.

作为一个格子,我希望节点的高度位置(y)表示节点所代表的集合中的元素数量.那么x位置应该由graphviz定义,以使表示更清晰.

可能吗?

根据点文档,应该有属性pos,它应该定义节点的位置.但是,尽管我以许多不同的方式尝试了很多次,但我无法获得定义节点位置的任何图形.有没有人有这个成功?

以下是我使用的经典点文件:

digraph G {
"528 544\n640 768" -> "768 528"; 
"528 536\n530 539" -> "539"; 
"528 536\n530 539" -> "528"; 
"800 896 548\n944 566 728\n539 704 768" -> "704 768\n539 548"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 728\n539 566"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 800\n896 768"; 
"768 539" -> "768"; 
"768 539" -> "539"; 
"768" -> "?"; 
"944" -> "?"; 
"944 528 536\n530 566 560\n728 656 539" -> …
Run Code Online (Sandbox Code Playgroud)

visualization graph graphviz

6
推荐指数
1
解决办法
2828
查看次数

如何在 graphviz 上仅显示某些节点​​(边)而不显示其他节点(边)

我有一个非常复杂的图表,我无法全部展示并理解它。我需要制作它的简化版本,仅显示一些节点而不显示其他节点。我不只是希望其他节点不可见,而是真正不存在(以便简化图形)。

解决方案是制作一个仅包含某些层的图表。但这可能吗?还有哪些其他选择?

谢谢,彼得罗

graph dot graphviz

6
推荐指数
1
解决办法
1464
查看次数