您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用numpy.frompyfunc通过参数将广播添加到python函数

使用numpy.frompyfunc通过参数将广播添加到python函数

从根本上讲,转换vlinenumpy的ufunc毫无意义,因为ufunc始终以元素方式应用于numpy数组。因此,输入自变量必须具有相同的形状,或者必须可广播为相同的形状。您正在将形状不兼容的两个数组传递给ufunc_vline函数db.shape == (6, 4)mask.shape == (3,)),因此ValueError您将看到。

还有其他几个问题ufunc_vline

np.frompyfunc(vline, 2, 1)指定vline应返回一个输出参数,而vline实际上不返回任何内容(但out在适当位置进行修改)。

您将db一个参数传递给ufunc_vline,而vline希望第一个参数传递给idx,该参数用作的行的索引db

另外,请记住,np.frompyfunc与标准Pythonfor循环相比,使用Python函数创建ufunc不会产生任何明显的性能优势。要查看任何重大改进,您可能需要使用低级语言(例如C)编码ufunc(请参见文档中的此示例)。

话虽如此,您的vline函数可以使用标准的布尔数组操作轻松地向量化:

例如:

python 2022/1/1 18:29:31 有189人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶