小编Cod*_*oob的帖子

使用Python 3.6.1在Linux/Intel Xeon上使用"fork"上下文块进行多处理?

问题描述
我稍微调整了这个答案的代码(见下文).但是,当在Linux上运行此脚本时(所以命令行:) python script_name.py,它将打印jobs running: x所有作业,但之后似乎只是卡住了.但是,当我使用spawn方法(mp.set_start_method('spawn'))时,它运行正常,并立即开始打印counter变量的值(请参阅listener方法).


  • 为什么它仅在产生过程时才起作用?
  • 如何调整代码以便它可以使用fork?(因为它可能更快)

import io
import csv
import multiprocessing as mp

NEWLINE = '\n'

def file_searcher(file_path):
    parsed_file = csv.DictReader(io.open(file_path, 'r', encoding='utf-8'), delimiter='\t')

    manager = mp.Manager()
    q = manager.Queue()
    pool = mp.Pool(mp.cpu_count())

    # put listener to work first
    watcher = pool.apply_async(listener, (q,))

    jobs = []
    for row in parsed_file:
        print('jobs running: ' + str(len(jobs) + 1))
        job = pool.apply_async(worker, (row, q)) …
Run Code Online (Sandbox Code Playgroud)

python linux fork multiprocessing python-3.x

25
推荐指数
1
解决办法
995
查看次数

R中的线密度热图

问题描述
我有数千行(~4000)要绘制。然而,绘制所有线条是不可行的geom_line(),仅使用例如alpha=0.1来说明哪里有高密度的线,哪里没有。我在 Python 中遇到了类似的东西,尤其是答案的第二个图看起来非常好,但是如果可以在ggplot2. 因此是这样的: 在此处输入图片说明

一个示例数据集
用一组显示模式来证明这一点会更有意义,但现在我只是生成随机正弦曲线:

set.seed(1)
gen.dat <- function(key) {
    c <- sample(seq(0.1,1, by = 0.1), 1)
    time <- seq(c*pi,length.out=100)
    val <- sin(time)
    time = 1:100
    data.frame(time,val,key)
}
dat <- lapply(seq(1,10000), gen.dat) %>% bind_rows()
Run Code Online (Sandbox Code Playgroud)

尝试过热图
我尝试了一个像这里回答的热图,但是这个热图不会考虑整个轴上点的连接(比如在一条线上),而是显示每个时间点的“热量” 。

问题
我们如何在 R 中使用ggplot2类似于第一张图所示的线绘制热图?

plot r heatmap ggplot2

8
推荐指数
2
解决办法
798
查看次数

Networkd3链接不是彼此叠加而是彼此相邻

我想制作一个图表,其中不同的链接类别有不同的颜色,我用它作为输入(样本):

  source target  cat weight
  <fctr> <fctr>     <chr>  <dbl>
1  human  water       1     30
2  human  water       2     49
3  human  water       3     2
4  human  water       4    14
5  human  water       5    19
Run Code Online (Sandbox Code Playgroud)

然后我将这些数据转换为节点,链接和link.colors并绘制它,这将给出: 在此输入图像描述
正如您在此网络中看到的,链接是相互叠加的.因此,不可能看到差异.所以我想绘制彼此相邻的链接,而不是相互叠加.

我无法提供整个数据集,但我想一个简单的例子就足够了:

library(networkD3)

link <- read.table(text = '  source target value
                        1      0      1    30
                        2      0      1    49', header = T)

nodes <- read.table(text = '   name group size
                              1 human     1   10
                              2 water     1   10', header = T)

link.colors <- c('#e6194b','#3cb44b')

network …
Run Code Online (Sandbox Code Playgroud)

javascript r graph networkd3

6
推荐指数
0
解决办法
143
查看次数

当累积和 &gt; x 时分割数组的 Numpy 方法

数据

让我们采用以下二维数组:

starts = [0, 4, 10, 13, 23, 27]
ends = [4, 10, 13, 23, 27, 32]
lengths = [4, 6, 3, 10, 4, 5] 

arr = np.array([starts, ends, lengths]).T
Run Code Online (Sandbox Code Playgroud)

因此看起来像:

[[ 0  4  4]
 [ 4 10  6]
 [10 13  3]
 [13 23 10]
 [23 27  4]
 [27 32  5]]
Run Code Online (Sandbox Code Playgroud)

目标

现在我想“循环”通过lengthsand 一旦累积和达到10我想输出startsandends然后重新启动累积计数。


工作代码

tot_size = 0
start = 0

for i, numb in enumerate(arr[:,-1]):
    # update sum
    tot_size += …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

将csv转换为JSON树结构?

我读了这些问题:

但是我仍然无法将csv文件转换为JSON的层次结构.我在stackoverflow上找到的脚本特定于某个问题.假设有三个变量需要分组:

condition   target  sub
oxygen      tree    G1
oxygen      tree    G2
water       car     G3
water       tree    GZ
fire        car     GTD
oxygen      bomb    GYYS
Run Code Online (Sandbox Code Playgroud)

这将导致像这样的JSON文件(据我所知):

oxygen
    - tree  
        - G1
        - G2
    - bomb
        -GYYS
water 
    - car
        - G3
    - tree
        -GZ
fire 
    - car   
        - GTD
Run Code Online (Sandbox Code Playgroud)

这些必须分组为嵌套结构,如:

    {
   "name": "oxygen",
   "children": [
    {
     "name": "tree",
     "children": [
      {"name": "G1"},
      {"name": "G2"},
      {"name": "GYYS"}
     ]
    },
    {
     "name": "bomb",
      "children": [
      {"name": "GYYS"}
     ] …
Run Code Online (Sandbox Code Playgroud)

python csv tree json d3.js

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

分层(分类)数据到树状图

数据
我有以下(简化的)数据集,我们df从现在开始调用:

                     species    rank                   value
1           Pseudomonas putida  family        Pseudomonadaceae
2       Pseudomonas aeruginosa  family        Pseudomonadaceae
3  Enterobacter xiangfangensis  family      Enterobacteriaceae
4          Salmonella enterica  family      Enterobacteriaceae
5        Klebsiella pneumoniae  family      Enterobacteriaceae
6           Pseudomonas putida   genus             Pseudomonas
7       Pseudomonas aeruginosa   genus             Pseudomonas
8  Enterobacter xiangfangensis   genus            Enterobacter
9          Salmonella enterica   genus              Salmonella
10       Klebsiella pneumoniae   genus              Klebsiella
11          Pseudomonas putida species      Pseudomonas putida
12      Pseudomonas aeruginosa species  Pseudomonas aeruginosa
13 Enterobacter xiangfangensis species Enterobacter hormaechei
14         Salmonella enterica species     Salmonella …
Run Code Online (Sandbox Code Playgroud)

tree r cluster-analysis taxonomy ggplot2

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

R networkD3:单击操作显示节点数据帧的信息

我有这个代码:

library(networkD3)

# Load data
data(MisLinks)
data(MisNodes)

new.nodes <- MisNodes
new.nodes$var1 <- runif(nrow(MisNodes),1,2)
new.nodes$var2 <- runif(nrow(MisNodes),1,2)

# Some script to show the node index in the new.nodes data frame
script <- 'alert("row: " + (d.index + 1));'

# Plot
forceNetwork(Links = MisLinks, Nodes = new.nodes,
             Source = "source", Target = "target",
             Value = "value", NodeID = "name",
             Group = "group", opacity = 0.8,
             clickAction = script)
Run Code Online (Sandbox Code Playgroud)

我想通了通过询问来获取节点数据帧的行号d.index + 1。但是我想显示一个包含所有节点信息的表,如下所示(也许格式更好):

    name group size     var1     var2
1 Myriel     1   15 …
Run Code Online (Sandbox Code Playgroud)

javascript networking r networkd3 htmlwidgets

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

查找范围值列表中的空白

我在其他编程语言(ruby、C++、JS 等)中发现了许多类似的问题,但在 Python 中却没有。因为Python有例如itertools我想知道我们是否可以在Python中更优雅地做同样的事情。

假设我们有一个“完整范围”,[1,100]然后是“完整范围”内/匹配“完整范围”的范围子集:

  • [10,50]
  • [90,100]

[1,9]在本例中,我们如何提取未覆盖的位置[51,89]

这是一个玩具示例,在我的真实数据集中,范围高达数千。

python range

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