小编Ame*_*tep的帖子

使用MemoryView时,有关NPY_NO_DEPRECATED_API的Cython Numpy警告

我正在将Cython内存视图转换为numpy数组(以便能够在纯Python代码中使用它):

from libc.stdlib cimport realloc
cimport numpy as np

DTYPE = np.float64
ctypedef np.float64_t DTYPE_t

cpdef np.ndarray[DTYPE_t] compute(DTYPE_t[:,::1] data):
    cdef unsigned int Nchannels = data.shape[0]
    cdef unsigned int Ndata = data.shape[1]
    cdef DTYPE_t* output = NULL
    cdef DTYPE_t[::1] mv

    output = <DTYPE_t*>realloc(output, Ndata*sizeof(output))
    if not output:
        raise MemoryError()
    mv = <DTYPE_t[:Ndata]>output
    mv[10:Ndata-10] = 0.0
    # various calculations...
    return np.asarray(mv, dtype=DTYPE, order='C')
Run Code Online (Sandbox Code Playgroud)

它编译,但编译器给出以下警告:

/Users/vlad/anaconda/lib/python2.7/site-packages/numpy/core/include
/nump/npy_1_7_deprecated_api.h:15:2: warning:
"Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
Run Code Online (Sandbox Code Playgroud)

我在setup.py中添加了建议的指令:

from distutils.core import …
Run Code Online (Sandbox Code Playgroud)

python numpy cython memoryview

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

有向图的数据结构,允许快速删除节点?

我需要存储有向图(不一定是非循环的),以便尽可能快地删除节点.我不介意存储额外的数据,以便确切地知道删除节点时必须经过哪些边缘.

如果我存储边缘列表(作为节点索引对),那么当杀死某个节点时,我必须在整个列表中搜索源或目标为n的边.这对我的申请来说太贵了.通过在节点中存储一些额外的数据可以避免这种搜索吗?

一个想法是让每个节点存储自己的源和目标,作为两个单独的列表.当节点n被杀死时,它的列表也被杀死.但是,与节点n相关联的所有目标/来源如何知道更新自己的列表(即,从列表中消除已解散的节点)?这需要一些昂贵的搜索......

可以避免吗?

谢谢.

algorithm graph directed-graph

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

如何标记熊猫中的成对组?

我有这个数据框:

>>> df = pd.DataFrame({'A': [1, 2, 1, np.nan, 2, 2, 2], 'B': [2, 1, 2, 2.0, 1, 1, 2]})
>>> df
     A    B
0  1.0  2.0
1  2.0  1.0
2  1.0  2.0
3  NaN  2.0
4  2.0  1.0
5  2.0  1.0
6  2.0  2.0
Run Code Online (Sandbox Code Playgroud)

我需要在第三列“组 ID”上识别成对 (A,B) 的组,以获得如下所示的内容:

>>> df
     A    B  grup id                        explanation
0  1.0  2.0      1.0  <- group (1.0, 2.0), first group 
1  2.0  1.0      2.0  <- group (2.0, 1.0), second group
2  1.0  2.0      1.0 …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas pandas-groupby

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