Python: np.vectorize 到 return "float"
Python: np.vectorize to return "float"
运行以下代码:
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()
我明白了情节:
但是当我尝试绘制不为零的吨值时,例如:
xontest = vxon(2, t)
该图似乎将所有 xon 值四舍五入为整数:
我的代码中的什么导致了这种行为?
找到问题了。该行
vxon = np.vectorize(xon)
应该写成
vxon = np.vectorize(xon, otypes=[np.float])
谢谢你,das-g,告诉我挖掘的方向。
运行以下代码:
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()
我明白了情节:
但是当我尝试绘制不为零的吨值时,例如:
xontest = vxon(2, t)
该图似乎将所有 xon 值四舍五入为整数:
我的代码中的什么导致了这种行为?
找到问题了。该行
vxon = np.vectorize(xon)
应该写成
vxon = np.vectorize(xon, otypes=[np.float])
谢谢你,das-g,告诉我挖掘的方向。