【问题标题】:Datatype of python universal function created with frompyfunc使用 frompyfunc 创建的 python 通用函数的数据类型
【发布时间】:2016-08-14 11:59:05
【问题描述】:

我有以下关于通用函数的问题 在麻木。如何定义一个返回的通用函数 与 numpy 内置函数相同类型的 numpy 数组。 以下示例代码:

import numpy as np
def mysimplefunc(a):
    return np.sin(a)
mysimpleufunc = np.frompyfunc(mysimplefunc,1,1)
a = np.linspace(0.0,1.0,3)
print(np.sin(a).dtype)
print(mysimpleufunc(a).dtype)

输出结果:

float64
object

非常感谢任何帮助:)

PS.:我使用的是 python 3.4

【问题讨论】:

    标签: python numpy types


    【解决方案1】:

    我找到了解决方案 (另见discussion on stackoverflow): 使用矢量化而不是 frompyfunc

    import numpy as np
    def mysimplefunc(a):
        return np.sin(a)
    mysimpleufunc = np.vectorize(mysimplefunc)
    a = np.linspace(0.0,1.0,3)
    print(np.sin(a).dtype)
    print(mysimpleufunc(a).dtype)
    

    【讨论】:

    • 我从其他 SO 讨论中知道 frompyfunc 返回 object 并且速度更快,但没有意识到 vectorize 使用了它。 vectorize 经常被误用为简单迭代的替代品。
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2018-05-09
    • 1970-01-01
    • 2016-01-11
    相关资源
    最近更新 更多