小编use*_*577的帖子

Pandas中布尔索引的逻辑运算符

我在Pandas中使用布尔索引.问题是为什么声明:

a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
Run Code Online (Sandbox Code Playgroud)

工作正常,而

a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Run Code Online (Sandbox Code Playgroud)

存在错误?

例:

a=pd.DataFrame({'x':[1,1],'y':[10,20]})

In: a[(a['x']==1)&(a['y']==10)]
Out:    x   y
     0  1  10

In: a[(a['x']==1) and (a['y']==10)]
Out: ValueError: The truth value of an array with more than one element is ambiguous.     Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud)

python filtering boolean dataframe pandas

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

scipy.cluster.hierarchy教程

我试图理解如何操纵层次结构集群,但文档太......技术性?......我无法理解它是如何工作的.

是否有任何教程可以帮助我开始,逐步解释一些简单的任务?

假设我有以下数据集:

a = np.array([[0,   0  ],
              [1,   0  ],
              [0,   1  ],
              [1,   1  ], 
              [0.5, 0  ],
              [0,   0.5],
              [0.5, 0.5],
              [2,   2  ],
              [2,   3  ],
              [3,   2  ],
              [3,   3  ]])
Run Code Online (Sandbox Code Playgroud)

我可以轻松地完成层次结构聚类并绘制树形图:

z = linkage(a)
d = dendrogram(z)
Run Code Online (Sandbox Code Playgroud)
  • 现在,我如何恢复特定群集?让我们说[0,1,2,4,5,6]树状图中有元素的那个?
  • 我怎样才能找回那些元素的价值?

python hierarchical-clustering scipy

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

试图猜测R的HOME但在PATH中没有R命令.OsX 10.6

我正在尝试安装rpy2,我正面临一个共同的问题.不幸的是,我找到的所有解决方案都是针对win7的

我安装了Python 2.7和R 2.15.然后我在终端上写字

easy_install rpy2
Run Code Online (Sandbox Code Playgroud)

或者,或者

pip install rpy2
Run Code Online (Sandbox Code Playgroud)

相同的结果:

Tried to guess R's HOME but no R command in the PATH
Run Code Online (Sandbox Code Playgroud)

我该做什么?

python macos r rpy2

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

结合numpy多维数组

我面临一个小问题,以某种方式组合数组.让我们说我们有

a=array([[1,1,1],[2,2,2],[3,3,3]])

b=array([[10,10,10],[20,20,20],[30,30,30]])
Run Code Online (Sandbox Code Playgroud)

我希望得到

c=array([[[1,1,1],[10,10,10]],[[2,2,2],[20,20,20]],[[3,3,3],[30,30,30]]])
Run Code Online (Sandbox Code Playgroud)

真正的问题是我的阵列a和b比3个坐标长得多!

我使用concatenate实现的最好的是:

concatenate((a,b),axis=2)

结果

array([[ 1, 1, 1, 10, 10, 10], [ 2, 2, 2, 20, 20, 20], [ 3, 3, 3, 30, 30, 30]])

这是相当不错但没有足够的深度.

此外,我尝试了另一个问题来获得所需的深度:

d=concatenate((a[...,None],b[...,None]),axis=2)

但结果是:

 array([[[ 1, 10],
    [ 1, 10],
    [ 1, 10]],

   [[ 2, 20],
    [ 2, 20],
    [ 2, 20]],

   [[ 3, 30],
    [ 3, 30],
    [ 3, 30]]])
Run Code Online (Sandbox Code Playgroud)

哪个仍然不起作用......

python arrays numpy

6
推荐指数
2
解决办法
3914
查看次数

使用 pexpect scp 到远程服务器

我正在尝试了解一些有关 pexpect 的知识:特别是我正在尝试将文件从我的笔记本电脑复制到远程服务器。我遇到了一种奇怪的行为:如果我逐行编写,或多或少相同的代码可以工作,但如果我将其作为脚本运行,则不会。这是我逐行写的:

child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
r
Run Code Online (Sandbox Code Playgroud)

它返回 0,我用密码完成工作

child.sendline ('password')
Run Code Online (Sandbox Code Playgroud)

当我通过 ssh 连接到服务器时,我在那里找到了我的文件。所以我将所有步骤收集在一个脚本中;它退出时没有错误,但文件没有被复制......为什么?但更重要的是,我该如何解决这个问题?

这是脚本:

child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
print r
if r==0:
    child.sendline ('password')
child.close()
Run Code Online (Sandbox Code Playgroud)

我不确定 pexpect 是如何工作的,所以我打印 r 以确保它是 0。确实如此。

python scp pexpect

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

获取 dict 的随机样本

我正在使用一本大字典,出于某种原因,我还需要处理该字典中的小随机样本。我怎样才能得到这个小样本(例如长度为 2)?

这是一个玩具模型:

dy={'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
Run Code Online (Sandbox Code Playgroud)

我需要在 dy 上执行一些涉及所有条目的任务。让我们说,为了简化,我需要将所有值相加:

s=0
for key in dy.key:
    s=s+dy[key]
Run Code Online (Sandbox Code Playgroud)

现在,我还需要对 dy 的随机样本执行相同的任务;为此,我需要一个 dy 密钥的随机样本。我能想象的简单解决方案是

sam=list(dy.keys())[:1]
Run Code Online (Sandbox Code Playgroud)

这样我就有了一个字典的两个键的列表,它们在某种程度上是随机的。因此,回到可能的任务,我需要在代码中进行的唯一更改是:

s=0
for key in sam:
    s=s+dy[key]
Run Code Online (Sandbox Code Playgroud)

关键是我不完全理解 dy.keys 是如何构建的,然后我无法预见任何未来的问题

python random dictionary python-3.4

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

python pandas:将一个带参数的函数应用于一个系列.更新

我想将一个带有参数的函数应用于pandas系列:我找到了两种不同的SO解决方案:

python pandas:将一个带参数的函数应用于一个系列

传递多个参数以应用(Python)

他们都依赖于使用,functool.partial他们的工作绝对正常.顺便说一句,新版本的Pandas支持多个论点:无论如何我不明白它是如何工作的.例:

a=pd.DataFrame({'x':[1,2],'y':[10,20]})
a['x'].apply(lambda x,y: x+y, args=(100))
Run Code Online (Sandbox Code Playgroud)

它退出时带有:

TypeError: <lambda>() argument after * must be a sequence, not int
Run Code Online (Sandbox Code Playgroud)

python apply pandas

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