小编man*_*ius的帖子

在cython中定义c函数返回numpy数组

我不确定以下问题是否有意义,因为我是新手.我试图在Cython中创建一个C函数,它返回一个numpy数组,如下所示.

cdef np.ndarray[np.int32_t, ndim=1] SumPlusOne(np.ndarray[np.int32_t, ndim=1] ArgArray):
    cdef np.ndarray[int32_t, ndim=1] ReturnArray = np.zeros((len(ArgArray), dtype = np.int32)

    ReturnArray = ArgArray + 1

    return ReturnArray
Run Code Online (Sandbox Code Playgroud)

但是,不要让我编译它.但是,如果我删除函数的返回类型

cdef SumPlusOne(np.ndarray[np.int32_t, ndim=1] ArgArray):
    ...
Run Code Online (Sandbox Code Playgroud)

没有问题.

我的问题是,有没有办法为返回值声明numpy类型?我真的不知道这是否可行,因为我不知道np.ndarray是否需要转换为python类型.

谢谢

numpy cython

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

特征分解容错

我有一个非常简单的问题.它与计算容差误差有关.

让我(在最后看)特征向量V和对角特征值D中的矩阵A的特征分解,并通过乘法V ^ -1*D*V再次构建它.

得到的值远不是A,误差很大.

我想知道我是否使用不正确的函数来完成此任务,或者至少我如何减少此错误.先感谢您

in[1]:import numpy
      from scipy import linalg
      A=matrix([[16,-9,0],[-9,20,-11],[0,-11,11]])
      D,V=linalg.eig(A)
      D=diagflat(D)
      matrix(linalg.inv(V))*matrix(D)*matrix(V)


out[1]:matrix([[ 15.52275377,   9.37603361,   0.79257097],  
       [9.37603361,  21.12538282, -10.23535271],  
       [0.79257097, -10.23535271,  10.35186341]])
Run Code Online (Sandbox Code Playgroud)

python scipy eigenvector

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

检查 vimScript 中是否存在地图

我正在尝试检查映射是否存在,如果是,则取消映射。如果我尝试在没有检查的情况下执行此操作,则会遇到错误并退出。我想我也可以尝试捕获错误并添加异常,但我也找不到方法。

我试过:

if exists("map jjj")
    unmap jjj
endif
Run Code Online (Sandbox Code Playgroud)

但它返回map jjj存在(即使不是真的),因为如果我在正常模式下运行

:map jjj
Run Code Online (Sandbox Code Playgroud)

它返回n j * gj。也就是说,它返回jmap 存在。

我没有进一步的想法

vim

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

标签 统计

cython ×1

eigenvector ×1

numpy ×1

python ×1

scipy ×1

vim ×1