我做了一些实验,发现了一些python的标准random和math库比numpy对应的更快的情况.
我认为python的标准库有一个趋势,即小规模操作的速度快10倍,而numpy大规模(矢量)操作的速度要快得多.我的猜测是,numpy有一些开销会成为小案件的主导.
我的问题是:我的直觉是否正确?通常建议使用标准库而不是numpy小型(通常是标量)操作吗?
示例如下.
import math
import random
import numpy as np
Run Code Online (Sandbox Code Playgroud)
记录和指数
%timeit math.log(10)
# 158 ns ± 6.16 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit np.log(10)
# 1.64 µs ± 93.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
%timeit math.exp(3)
# 146 ns ± 8.57 ns per loop (mean ± std. dev. of …Run Code Online (Sandbox Code Playgroud) 我正在开发一个R包,其中一个功能是通过的标准输入来实现与用户的交互readline。我现在想知道如何测试此功能的行为,最好是使用testthat库。
似乎test_that函数假定答案是""用户输入的。我希望我可以测试用户可以输入的各种答案的行为条件。
下面是一个小的示例代码。在实际开发中,该marryme函数在单独的文件中定义,并导出到名称空间。
devtools::test()在最后一行让我出错,因为答案永远不会是。我想测试用户输入时函数是否正确返回true "y"。
library(testthat)
test_that("input", {
marryme <- function() {
ans <- readline("will you marry me? (y/n) > ")
return(ans == "y")
}
expect_false(marryme()) # this is good
expect_true(marryme()) # this is no good
})
Run Code Online (Sandbox Code Playgroud) 在Travis-ci上,我想跳过一些os和版本的组合.
具体来说,假设我有一个R项目.我目前的".travis.yml"看起来像
language: r
r:
- oldrel
- release
- devel
os:
- linux
- osx
Run Code Online (Sandbox Code Playgroud)
但我想跳过devel用osx(因为devel是没有完全准备好这个平台还).我可以这样做吗?