将 numpy 整数数组传递给 c 代码

2023-12-08

我正在尝试编写 Cython 代码来将密集特征矩阵、目标向量对转储为 libsvm 格式,速度比 sklearn 的内置代码更快。我收到一个编译错误,抱怨将目标向量(整数的 numpy 数组)传递给相关 c 函数时出现类型问题。

这是代码:

import numpy as np
cimport numpy as np
cimport cython

cdef extern from "cdump.h":
    int filedump( double features[], int numexemplars, int numfeats, int target[], char* outfname)

@cython.boundscheck(False)
@cython.wraparound(False)
def fastdumpdense_libsvmformat(np.ndarray[np.double_t,ndim=2] X, y, outfname):
    if X.shape[0] != len(y):
        raise ValueError("X and y need to have the same number of points")

    cdef int numexemplars = X.shape[0]
    cdef int numfeats = X.shape[1]

    cdef bytes py_bytes = outfname.encode()
    cdef char* outfnamestr = py_bytes

    cdef np.ndarray[np.double_t, ndim=2, mode="c"] X_c
    cdef np.ndarray[np.int_t, ndim=1, mode="c"] y_c
    X_c = np.ascontiguousarray(X, dtype=np.double)
    y_c = np.ascontiguousarray(y, dtype=np.int)
    retval = filedump( &X_c[0,0], numexemplars, numfeats, &y_c[0], outfnamestr)

    return retval

当我尝试使用 distutils 编译此代码时,出现错误

cythoning fastdump_svm.pyx to fastdump_svm.cpp

Error compiling Cython file:
------------------------------------------------------------ ...

    cdef np.ndarray[np.double_t, ndim=2, mode="c"] X_c
    cdef np.ndarray[np.int_t, ndim=1, mode="c"] y_c
    X_c = np.ascontiguousarray(X, dtype=np.double)
    y_c = np.ascontiguousarray(y, dtype=np.int)
    retval = filedump( &X_c[0,0], numexemplars, numfeats, &y_c[0], outfnamestr)
                                                         ^
------------------------------------------------------------

fastdump_svm.pyx:24:58: Cannot assign type 'int_t *' to 'int *'

知道如何修复这个错误吗?我最初遵循传递 y_c.data 的范例,这是有效的,但这显然不是推荐的方式。


您还可以使用dtype=np.dtype("i")当启动 numpy 数组来匹配 C 时int在你的机器上。

cdef int [:] y_c
c_array = np.ascontiguousarray(y, dtype=np.dtype("i"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 numpy 整数数组传递给 c 代码 的相关文章

  • 交错行二维 Numpy 数组

    我有一个 2D numpy 数组 如下所示 array x1 x2 x3 x4 x2 x3 x4 x5 x3 x4 x5 x6 y1 y2 y3 y4 y2 y3 y4 y5 y3 y4 y5 y6 我想交错行 使数组看起来像这样 arra
  • AttributeError:'numpy.ndarray'对象没有属性'median'

    我可以对 numpy 数组执行大量统计 但 中位数 返回属性错误 当我执行 dir np 时 我确实看到列出了中值方法 newpy2 7831c1c083a2 src scaldara python Python 2 7 12 Contin
  • Python - 将字符串列表转换为浮点数 - 方括号和小数点导致问题

    我有一个文本文件 其中包含较小的数据集 取自 csv 文件 如下所示 2020 05 24T10 44 37 613168 0 0 0 06210425 0 2020 05 24T10 44 37 302214 1 1 0 0 2020 0
  • 将一个 numpy 数组按另一个排序

    我有一个确定元素顺序的数组 order 3 1 4 2 然后我想对另一个更大的数组 仅包含这些元素 进行排序 a np array 4 2 1 1 4 3 1 3 这样首先出现的元素order结果第一等在直接的 Python 中 我会使用一
  • 如何避免 numpy.random.choice 中的舍入错误?

    假设 x 1 x 2 x n 是 n 个对象 并且想要选择其中一个 以便选择 x i 的概率与某个数字 u i 成正比 Numpy 为此提供了一个函数 x u np array x 1 x 2 x n np array u 1 u n np
  • 扩展 python - 到 swig,而不是 swig 或 Cython

    我发现了我的 python 代码中的瓶颈 尝试了 Psycho 等 然后决定编写一个 c c 扩展来提高性能 在 swig 的帮助下 你几乎不需要关心争论等 一切正常 现在我的问题是 swig 创建一个相当大的 py 文件 在调用实际的 p
  • 如何生成具有预定义概率分布的随机数?

    我想在 python 中实现一个函数 使用numpy 需要一个数学函数 例如p x e x 如下 作为输入并生成随机数 这些随机数根据该数学函数的概率分布进行分布 我需要绘制它们 以便我们可以看到分布 我实际上需要一个随机数生成器函数 用于
  • 如何将许多 numpy 文件逐个文件放入一个大 numpy 文件中?

    我有 166600 个 numpy 文件 我想将它们放入一个 numpy 文件中 逐个文件 我的意思是 我的新大文件的创建必须从头开始 第一个文件必须在文件中读取和写入 因此大文件只包含第一个文件 之后我需要读取和写入第二个文件 所以大文件
  • 如何根据特定行中的值对 numpy 数组进行排序?

    我想知道如何根据其中一列中的值对整个数组进行排序 I have array 5 2 8 2 4 and array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
  • 矩阵和向量每列之间的 numpy 协方差

    基于这个帖子 https stackoverflow com questions 15036205 numpy covariance matrix 我可以使用两个向量之间的协方差np cov x y rowvar 0 我有一个矩阵 MxN
  • 整数 numpy 数组乘以浮点数

    我有一个包含整数值的 numpy 数组 如果我将整个矩阵乘以一个浮点数 结果是一个浮点矩阵 但如果我通过 for 循环逐列相乘 它只给出整数部分 import numpy as np A np array 1 2 3 4 5 6 7 8 9
  • 如何让 Numpy 将每一行/张量视为一个值

    许多功能 例如in1d https docs scipy org doc numpy 1 13 0 reference generated numpy in1d html and setdiff1d https docs scipy org
  • Cython C 数组初始化

    我想要做 cdef int mom2calc 3 mom2calc 0 1 mom2calc 1 2 mom2calc 2 3 以更紧凑的方式 类似的东西 cdef int mom2calc 3 1 2 3 这是无效的 Cython 语法
  • 在python中安装scipy模块时出错

    我正在尝试使用 pip 在 python 中安装 scipy 模块 它显示以下错误 Command c users sony appdata local programs python python35 32 python exe u c
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • 将 x 轴绘制为日期

    我正在尝试对数据进行一些分析 我得到了 csv 文件并将其转换为 pandas 数据框 数据看起来像这样 它有几列 但我试图将 x 轴绘制为日期列 pandas 数据框看起来像这样 print df head 10 cus id date
  • 在空心方形层内生成随机均匀分布点的 Pythonic 方法

    假设我们有一个尺寸为 n 的空心方形薄片 也就是说 我们有一个 nxn 正方形 其中删除了 k l 矩形 1 我为 numpy 编写了这段代码 但它至少有 2 个问题 我必须丢弃大约 1 9 的所有生成点 并且删除 numpy array
  • 加速结构化 NumPy 数组

    NumPy数组在性能和易用性方面都非常出色 比列表更容易切片 索引 我尝试构建一个数据容器NumPy structured array代替dict of NumPy arrays 问题是性能要差得多 使用同质数据的情况大约是 2 5 倍 而
  • Numpy 矩阵到 tkinter 画布

    如何将 Numpy 矩阵作为位图显示到 Tkinter 画布中 更准确地说 如何填写PhotoImage来自矩阵的内容 photo ImageTk PhotoImage self canvas create image 0 0 image
  • python3-numpy:使用 numpy savetxt 附加到文件

    我正在尝试使用 numpy 的 savetxt 函数将数据附加到文件中 下面是最小的工作示例 usr bin env python3 import numpy as np f open asd dat a for iind in range

随机推荐

  • 使用 vba 解析 JSON 时遇到问题

    我能得到什么appears作为来自 Web 查询的有效 JSON 字符串 但是我一生都无法正确设置项目 需要确认我没有失去理智 Call for available reports Dim URLReporta As String Dim
  • 条件匹配后仅运行一次 jQuery 事件

    我正在制作在线产品网站 我正在触发一个滚动事件 开始时仅显示 12 个元素 但是当第 8 个元素滚动到顶部时 滚动事件应该只运行一次 但每次向下滚动时它都会运行 请帮助 这是我的代码 var navigation offset top pr
  • hadoop用户文件权限

    我在 hortonworks 和 cloudera 中设置 hadoop 文件权限时遇到问题 我的要求是 1 create a new user with new group 2 create user directory in hdfs
  • 使用 AND 条件进行一对多搜索

    我有以下包含多种颜色的产品 我希望找到至少包含红色和绿色的产品 Product class String id List
  • 如何使用 Microsoft graph api 从 Office 365 恢复已删除的邮件

    我想恢复我们使用 Microsoft graph api 删除的邮件 我没有找到任何 api 来使用 api 来恢复或恢复已删除的邮件 Graph API 中没有恢复方法 MAPI 或 EWS 中也没有 当某个项目在 Exchange 中被
  • 在 vector.push_back() 导致重新分配后,如何让向量迭代器指向向量?

    我有一个函数void AddEntity Entity addtolist 将元素推回到vector但由于当元素添加到时大小和容量是相等的vector 向量重新分配并且iterator变得无效 然后 当我尝试增加迭代器时 由于迭代器无效 我
  • 为什么允许可变成员的协变子类型?

    可变集合的不变性 内置的理由mutablePython 中的集合类型有不变的两者都得到了很好的解释PEP 483 and PEP 484以及一个很好的说明性示例 专门说明了原因list是不变的Mypy 文档关于这个主题 class Shap
  • Android:扩展 SeekBar 时如何从 AccessibilityEvents 中消除语音文本?

    我的 Android 应用程序包含一个基于SeekBar 并且我想将自定义文本短语附加到我的控件以解释其对辅助功能的使用 我已经使用成功完成了此操作View setContentDescription text 当我请求将焦点集中在滑块控件
  • 使用控件名称作为字符串转换为控件[重复]

    这个问题在这里已经有答案了 我的 XIB 中有几个文本字段 和标签 在我的应用程序中的某个时刻 我动态构建一个包含控件名称的字符串 即文本字段之一 如何使用我创建的保存文本字段名称的字符串来引用实际的文本字段 例如 我有 txt1 txt2
  • Windows Phone 8 - 2 背景音频冲突并且两个应用程序都终止

    大约一周前 我为 Windows Phone 商店提交了一个在线后台广播流应用程序 该应用程序非常好 当我使用模拟器对其进行测试时 它在所有可能的领域都很好 但是当我提交它进行认证时 它失败了 根据错误日志 如果有人已经在音乐 视频中心播放
  • 使用嵌套和根级别数据的 Elasticsearch 嵌套聚合比率

    我感觉像是一个简单的聚合 我有一个文档 其计时代码如下 task start 2020 06 03T21 19 07 908821Z task end 2020 06 03T21 27 00 323790Z sub tasks key su
  • Visual Studio 2010下LNK2019错误

    我在 Visual Studio 2010 下使用以下文件创建了一个示例 C 项目 A h ifndef A H define A H include
  • 如何正确设置 ios 标志以进行流操作?

    我在 C 中输入了一个基本示例 其中我尝试将一个数字以十六进制形式打印到屏幕上 如下所示 include
  • IEnumerable 没有 Count 方法

    我有以下方法 public bool IsValid get return GetRuleViolations Count 0 public IEnumerable
  • 与 React 之外的功能组件通信

    我希望能够从正常 HTML 中的组件外部与我的 React 组件进行通信 由于将组件嵌入到另一个系统中而需要 我一直在研究这个 我看到了您可以添加组件的建议window通过在渲染的元素上添加引用 如下所示 ReactDOM render
  • 使用 Python 生成报告:PDF 或 HTML 到 PDF

    Using maptplotlib我创建了 9 个图表 使用命令将它们组合成一个 pdfsavefig 但是我需要能够在每个图下方显示统计分析 describe 最好的方法是什么 Pandas 可以包含一张带有绘图的表格 请参阅table夸
  • 为什么 DBI 会隐式地将整数更改为字符串?

    我有一个具有以下结构的 MySQL 表 alid bigint 20 ndip varchar 20 ndregion varchar 20 occ num int 3 Delta Flag int 1 从表中选择数据后 我将获取所有引用的
  • 最后使用 Javascript 加载一些图像

    嗨 我只是想知道这是否可能 我的网站上有很多图像 我已将它们设置为尽可能小的文件大小 有些图像用作幻灯片 但全部都一次性加载 有没有一种方法使用 javascript 使幻灯片图像最后加载 以便背景图像等首先加载 幻灯片最后加载 这些图像位
  • 访问路由器参数 VueJS

    我正在使用 Vuejs 创建一个博客 而且我对它还很陌生 简而言之 我有一个加载到屏幕上的动态元素列表 当您单击其中一个项目时 我想转到该页面以及其余数据 我遵循了与使用 React 时相同的流程 路由器 js export default
  • 将 numpy 整数数组传递给 c 代码

    我正在尝试编写 Cython 代码来将密集特征矩阵 目标向量对转储为 libsvm 格式 速度比 sklearn 的内置代码更快 我收到一个编译错误 抱怨将目标向量 整数的 numpy 数组 传递给相关 c 函数时出现类型问题 这是代码 i