小编jwi*_*720的帖子

从长形式的值重建对称矩阵

我有一个看起来像这样的tsv(长形式):

  one   two   value
  a     b     30
  a     c     40
  a     d     20
  b     c     10
  b     d     05
  c     d     30
Run Code Online (Sandbox Code Playgroud)

我想把它变成R(或pandas)的数据帧

    a  b  c  d 
a   00 30 40 20
b   30 00 10 05 
c   40 10 00 30
d   20 05 30 00
Run Code Online (Sandbox Code Playgroud)

问题是,在我的tsv中我只有a,b定义而不是b,a.所以我的数据框中有很多NA.

最终目标是获得用于聚类的距离矩阵.任何帮助,将不胜感激.

r matrix reshape

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

如果小部件到达屏幕末尾,Python Tkinter 将小部件包装在框架中

Tk几何管理器是否有类似pack to new line的东西?我正在使用 pack 将小部件放在框架内。在高分辨率屏幕上,小部件适合并排查找。但是,如果将其放入较小的屏幕中,则小部件将在框架中耗尽空间。

基本上,我们从:

前

到:

后

您可以看到它如何切断我的处理器输入字段。相关代码:

options_frame = ttk.LabelFrame(
        parent_frame, text="Blast Options")
options_frame.pack(side=TOP, fill=X, expand=1, padx=5, pady=5)
        self._set_up_blast_options(options_frame)

def _set_up_blast_options(self, options_frame):
    self.evalue = Tkinter.DoubleVar()
    self.evalue.set(1)
    self.word_size = Tkinter.IntVar()
    self.word_size.set(4)
    self.penalty_mismatch = Tkinter.DoubleVar()
    self.penalty_mismatch.set(-4)
    self.min_d_match = Tkinter.IntVar()
    self.min_d_match.set(5)
    self.proc_count = Tkinter.IntVar()
    self.proc_count.set(cpu_count())

    # evalue
    e_value_label = ttk.LabelFrame(
        options_frame, text="e-Value Threshold")
    e_value_entry = ttk.Entry(e_value_label)
    e_value_entry.insert(0, self.evalue.get())
    e_value_entry.bind('<Return>', self._validate_e_value)
    e_value_entry.bind('<FocusOut>', self._validate_e_value)
    e_value_label.pack(side=LEFT, expand=1, pady=5, padx=5, fill=X)
    e_value_entry.pack(side=TOP, expand=1, pady=5, padx=5, fill=X)

    # word size
    word_size_label = ttk.LabelFrame(
        options_frame, text="Word Size") …
Run Code Online (Sandbox Code Playgroud)

python user-interface tk-toolkit tkinter ttk

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

在同一个 ipython 单元中渲染两个 seaborn 图形对象

我有两个 matplotlib (seaborn) 图形对象,它们都是在不同的 ipython 单元中制作的。

#One Cell
fig_1_object = sns.factorplot(y='freq',x='d_fam',col='easy_donor',kind="bar",data=collection_d_fam)
fig_1 = fig_1_object.fig


#Two Cell
fig_2_object = sns.factorplot(y='freq',x='d_fam',col='easy_donor',kind="bar",data=collection_c_fam)
fig_2 = fig_2_object.fig
Run Code Online (Sandbox Code Playgroud)

我怎样才能在同一个单元格中依次“显示”它们。我打开了 matplotlib 内联。

#third cell
fig_1
fig_2
>>Only shows fig_2
Run Code Online (Sandbox Code Playgroud)

python matplotlib ipython seaborn jupyter-notebook

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

在构造函数中子类化熊猫数据框和设置字段

我正在尝试对pandas 数据结构进行子类化。如果我在实例上设置一个字段,它工作正常。

import seaborn as sns
import pandas as pd
df = sns.load_dataset('iris')

class Results(pd.DataFrame):
    def __init__(self, *args, **kwargs):
        # use the __init__ method from DataFrame to ensure
        # that we're inheriting the correct behavior
        super(Results, self).__init__(*args, **kwargs)

    @property
    def _constructor(self):
        return Results
    
result_object = Results(df)
result_object['scheme'] = 'not_default'
print(result_object.head(5))

>>>   sepal_length  sepal_width  petal_length  petal_width species       scheme
0           5.1          3.5           1.4          0.2  setosa  not_default
1           4.9          3.0           1.4          0.2  setosa  not_default
2           4.7          3.2           1.3          0.2 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

熊猫 - 重新索引所以我可以保持价值观

长话短说

我有一个嵌套字典.当我把它变成数据帧时.

import pandas
pdf = pandas.DataFrame(nested_dict)

 95     96     97     98     99    100   101   102   103    104    105  \
A  70019    102   4243   3083   3540  6311  4851  5938  4140   4659   3100   
C      0    185    427    433   1190   910  3898  3869  2861   2149   3065   
D      8      9  23463   1237   2574  4174  3640  4747  3557   4582   5934   
E    141     89   5034   1576   2303  3416  2377  1252  1204   1703    718   
F      7     12   1937   2246   1687  1154  1317  3473  1881   2221   3060   
G …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

ipython笔记本R cell magic作为python函数

我有一些%rmagic接收数据帧并绘制它.我不能用python中的当前ggplot实现来做到这一点.所以我想知道我是否可以使用函数将数据帧传递给包含R代码并可能返回它的单元格.这就是我的想法:

 #cell 1
 def plot_in_r(dataframe):
     pass_to_cell_2(dataframe)


 #cell 2
 %%R -i dataframe 
 ggplot(dataframe) + geom_bar()
Run Code Online (Sandbox Code Playgroud)

它不一定是其他单元格的单元格,但是我需要将一些东西传递给R并让它通过我可以重复使用的函数绘制在笔记本中.

r ipython rpy2 ipython-notebook

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

异构列表元素的Python排列

这是顺序:

l = [['A', 'G'], 'A', ['A', 'C']]
Run Code Online (Sandbox Code Playgroud)

我需要为每个排列返回三个元素序列

all = ['AAA','GAA','AAC','GAC']
Run Code Online (Sandbox Code Playgroud)

我无法想出这一个!我在保留排列顺序方面遇到了麻烦!

python permutation python-itertools

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

Seaborn Heatmap Subplots - 保持轴比率一致

如果我有以下代码:

import seaborn 
import matplotlib.pyplot as plt
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
f,(ax1,ax2,ax3) = plt.subplots(1,3,sharey=True)
g1 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax1)
g1.set_ylabel('')
g1.set_xlabel('')
g2 = sns.heatmap(flights,cmap="YlGnBu",cbar=False,ax=ax2)
g2.set_ylabel('')
g2.set_xlabel('')
g3 = sns.heatmap(flights,cmap="YlGnBu",ax=ax3)
g3.set_ylabel('')
g3.set_xlabel('')
Run Code Online (Sandbox Code Playgroud)

哪个输出如下 - 在此输入图像描述

如何调整子图,使g3轴与g1,g2轴的宽度相同.由于我没有将颜色条添加到前两个轴',因此seaborn会缩小第三个轴以使整个图形保持一致.这是可以理解的.

我要这个:

在此输入图像描述

也许我需要制作一个4面板子图,第四个面板只包含颜色条?

python matplotlib seaborn

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

Python - 多处理 - 更多关于 CPU 的工作。

我意识到我可以使用 Pool 类并可能得到我需要的东西,但我想要更好地控制我的问题。我的工作比处理器多,所以我不希望它们同时运行。

例如:

from multiprocessing import Process,cpu_count
for dir_name in directories:
    src_dir = os.path.join(top_level,dir_name)
    dst_dir = src_dir.replace(args.src_dir,args.target_dir)
    p = Process(target=transfer_directory, args=(src_dir, dst_dir,))
    p.start()
Run Code Online (Sandbox Code Playgroud)

但是,如果我有超过 16 个目录,那么我将启动比处理器更多的作业。这是我的解决方案,它真的很黑客。

from multiprocessing import Process,cpu_count
jobs = []
for dir_name in directories:
    src_dir = os.path.join(top_level,dir_name)
    dst_dir = src_dir.replace(args.src_dir,args.target_dir)
    p = Process(target=transfer_directory, args=(src_dir, dst_dir,))
    jobs.append(p)

alive_jobs = []
while jobs:
    if len(alive_jobs) >= cpu_count():
        time.sleep(5)
        print alive_jobs
        for aj in alive_jobs:
            if aj.is_alive():
                continue
            else:
                print "job {} removed".format(aj)
                alive_jobs.remove(aj)

        continue

    for job in jobs: …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-2.7

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

ggplot2:添加facet_grid面板意味着文本和hline

我有一个看起来像这样的数据框.

> head(df)
  DGene JGene cdr3_len Sum
1 IGHD1 IGHJ1        0  22
2 IGHD1 IGHJ1        1  11
3 IGHD1 IGHJ1        2  16
4 IGHD1 IGHJ1        3  40
5 IGHD1 IGHJ1        4  18
6 IGHD1 IGHJ1        5  30
...
Run Code Online (Sandbox Code Playgroud)

facet_grid非常简单.

ggplot(df,aes(x=cdr3_len,y=Sum)) + geom_line() + xlim(c(1,42)) + facet_grid(JGene~DGene,scales="free_y")
Run Code Online (Sandbox Code Playgroud)

并得到一些看起来像的东西.

在此输入图像描述

我想知道是否有人可以帮我添加每个网格的平均值的hline.或者可能如何在右上角打印每个网格的平均值.

谢谢,

编辑 - 数据框的完整链接

r ggplot2

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