我正在尝试使用Interactive Web Visualization一书来学习d3,但是版本4.0已经发生了很多变化.我真的无法弄清楚的一件事是,是否有d3.scale.category10()的等价物可以轻松映射到颜色.在新版本中是否有类似的东西,或者我们是否需要使用math.random和自己编写代码?
我试图理解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课程.教授没有在视频中提及"为什么",我想知道是否有其他人知道.
谢谢!
我一直在 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) 这感觉就像(并且可能是)一个非常愚蠢的问题,但你怎么称呼关闭一个没有明确调用matplotlib的数据帧图?
例如,如果您键入:
df.hist(data)
Run Code Online (Sandbox Code Playgroud)
有没有办法关闭图(除了手动点击窗口的x)?
我习惯于调用plt.close(),但是在pandas中有类似的东西吗?我已经尝试过close&close(),但都没有工作.