小编ano*_*its的帖子

d3.scale.category10()的d3.js v4.0等价物是什么?

我正在尝试使用Interactive Web Visualization一书来学习d3,但是版本4.0已经发生了很多变化.我真的无法弄清楚的一件事是,是否有d3.scale.category10()的等价物可以轻松映射到颜色.在新版本中是否有类似的东西,或者我们是否需要使用math.random和自己编写代码?

d3.js

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

Scala for()vs for {}

我试图理解Scala中的理解,我有很多我理解的例子......

我很难搞清楚的一件事是for()vs for {}.我已经尝试了两种方式,似乎我可以在一种情况下做一件事,但在另一种情况下它会中断.

例如,这不起作用:

def encode(number: String): Set[List[String]] =
  if (number.isEmpty) Set(List())
  else {
    for (
      split <- 1 to number.length
      word <- wordsForNum(number take split)
      rest <- encode(number drop split)
    ) yield word :: rest
  }.toSet
Run Code Online (Sandbox Code Playgroud)

但是,如果将其更改为{},则会进行编译:

def encode(number: String): Set[List[String]] =
  if (number.isEmpty) Set(List())
  else {
    for {
      split <- 1 to number.length
      word <- wordsForNum(number take split)
      rest <- encode(number drop split)
    } yield word :: rest
  }.toSet                                 
Run Code Online (Sandbox Code Playgroud)

这些例子来自我正在参加的Coursera课程.教授没有在视频中提及"为什么",我想知道是否有其他人知道.

谢谢!

scala

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

如何在Python中使用cv2和多重处理并行从视频中获取帧

我一直在 python 中使用 cv2 和多处理,我终于有了一个工作脚本,一旦各个帧已经在输入队列中,它就会对它们进行处理。但是,我想首先通过使用多个核心来加快将帧放入队列的速度,因此我尝试使用相同的多处理方法将每个图像读入队列。但我似乎无法让它发挥作用,我也不知道为什么。我想也许是因为我试图写入一个队列,所以我将它们分开,但现在我想知道这是否是因为我试图同时读取同一个视频文件。

这是我希望用伪代码完成的事情:

for process in range(processCount):
    start a process that does this:
        for frame in range(startFrame,endFrame):
            set next frame to startFrame
            read frame
            add frame to queue
Run Code Online (Sandbox Code Playgroud)

这是我当前的代码。我尝试过使用池和单独的进程,但现在我坚持使用单独的进程,因为我不确定问题是否出在队列管理上。如果我手动调用 getFrame,我会将正确的内容放入队列中,所以我认为该函数本身可以正常工作。

我确信我正在做一些非常愚蠢(或者非常奇怪)的事情。有人可以提出解决方案吗?如果也只有一个队列就太好了……我只有两个队列来尝试解决问题。

提前致谢。

import numpy as np
import cv2
import multiprocessing as mp
import time

def getFrame(queue, startFrame, endFrame):
    for frame in range(startFrame, endFrame):
        cap.set(1,frame)
        frameNo = int(cap.get(0))
        ret, frame = cap.read()
        queue.put((frameNo,frame))

file = 'video.mov'
cap = cv2.VideoCapture(file)
fileLen = int(cap.get(7))

# get cpuCount for processCount
processCount …
Run Code Online (Sandbox Code Playgroud)

python multithreading opencv

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

如何关闭pandas数据帧图

这感觉就像(并且可能是)一个非常愚蠢的问题,但你怎么称呼关闭一个没有明确调用matplotlib的数据帧图?

例如,如果您键入:

df.hist(data)
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭图(除了手动点击窗口的x)?

我习惯于调用plt.close(),但是在pandas中有类似的东西吗?我已经尝试过close&close(),但都没有工作.

python plot pandas

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

标签 统计

python ×2

d3.js ×1

multithreading ×1

opencv ×1

pandas ×1

plot ×1

scala ×1