Python:np.vectorize 返回 "float"

标签 python numpy vectorization floating piecewise

运行以下代码:

import matplotlib.pyplot as plt
import numpy as np

def xon (ton, t):
    if ton <= t:
        return (t-ton)/5
    else:
        return 0

vxon = np.vectorize(xon)
t = np.linspace(0, 49, 50)    
xontest = vxon(0, t)
plt.plot(t, xontest, '-')
plt.show()

我明白了情节: enter image description here

但是当我尝试绘制 ton 的值时,wchich 不同于零,例如:

xontest = vxon(2, t)

该图似乎将所有 xon 值四舍五入为整数:

enter image description here

我的代码中的什么导致了这种行为?

最佳答案

发现问题。线路

vxon = np.vectorize(xon)

应该写成

vxon = np.vectorize(xon, otypes=[np.float])

谢谢你,das-g,告诉我挖掘的方向。

关于Python:np.vectorize 返回 "float",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35957999/

相关文章:

python - 堆叠 numpy 数组?

performance - 如何向量化许多 rank-1 外积的形成?

sse - 如何让 ICC 编译器在内循环中生成 SSE 指令?

java - 将动态 URL 路由到 App Engine Java 中的静态文件

Python - 在字节文件中替换正则表达式匹配

python - 导入错误 : cannot import name Ghost

python - scipy.optimize.minimize 返回零维数组?

python - 如果存在于另一个数组中,则从一个数组中删除元素,保留重复元素 - NumPy/Python

python - 使用 NumPy 快速进行 token 到索引的转换

r - 对一个向量中小于另一个向量的所有值的差求和