小编Wei*_* Gu的帖子

Cython 中从现有数组和变量创建新数组的最快方法是什么

假设我有一个数组

from array import array
myarr = array('l', [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

和一个变量: myvar = 4 创建新数组的最快方法是什么:

newarray = array('l', [1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

您可以假设所有元素都是“长”类型

我试图创建一个新数组array.append() 并不确定它是否最快。我正在考虑使用memoryviewlike: malloc(4*sizeof(long)) 但我不知道如何将较短的数组复制到 memoryview 的一部分中。然后将最后一个元素插入最后一个位置。

我对 Cython 相当陌生。谢谢你的帮助!

更新:我比较了以下三种方法:

Cython: [100000 个循环,最好的 3 个:每个循环 5.94 µs]

from libc.stdlib cimport malloc

def cappend(long[:] arr, long var, size_t N):
    cdef long[:] result = <long[:(N+1)]>malloc((N+1)*sizeof(long))
    result.base[:N] = arr
    result.base[N] = var
    return result
Run Code Online (Sandbox Code Playgroud)

数组: [1000000 个循环,最好的 3 个:每个循环 1.21 µs]

from array import array
import …
Run Code Online (Sandbox Code Playgroud)

python arrays cpython cython

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

如何在plotly中添加注释水平或垂直参考线?

如果重要的话,我正在使用闪亮的 R. 输出。我想向由layout(shapes = ). 它应该能够动态改变位置,以便无论图形放大或缩小如何,它都保持可见。 近似示例

到目前为止,我只能找到固定位置的文本。我不介意它是动态位于轴上还是指向参考线的箭头。

%编辑

我找到了解决问题的方法:

dt <- data.table(x = 1:10, y = rnorm(10))    
annotation <- list(yref = 'paper', xref = "x", y = 0, x = 2, text = "annotation")
plot_ly(type = "scatter", mode = "lines") %>% add_trace(x = dt$x, y = dt$y, mode = "lines") %>% layout(annotations= list(annotation))
Run Code Online (Sandbox Code Playgroud)

基本上,yref = "paper"允许您指定一个始终相对于图的位置,y=1指的是图的顶部和图y=0的底部

r plotly

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

在plotly R中将具有不同模式的多行悬停文本分组

Plotly具有同时显示多行的悬停文本的功能.例如:

dt <- data.table(x = 1:10, y = rnorm(10), z = rnorm(10)+2)
plot_ly(type = "scatter", mode = "lines") %>% 
    add_trace(x = dt$x, y = dt$y, name = "curve 1", mode = "lines") %>% 
    add_trace(y = dt$z, name = "curve 2", mode = "lines")
Run Code Online (Sandbox Code Playgroud)

但是,如果它们的模式不同,则不会对悬停文本进行分组.例如:

dt <- data.table(x = 1:10, y = rnorm(10), z = rnorm(10)+2) 
plot_ly(type = "scatter", mode = "lines") %>%
    add_trace(x = dt$x, y = dt$y, name = "curve 1", mode = "lines+markers") %>% 
    add_trace(y = dt$z, name …
Run Code Online (Sandbox Code Playgroud)

python r plotly

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

标签 统计

plotly ×2

python ×2

r ×2

arrays ×1

cpython ×1

cython ×1