1
Запуск следующий код:Python: np.vectorize вернуть «плавающем»
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()
Но когда я пытаюсь построить для значений т, wchich отличаются чем ноль, например:
xontest = vxon(2, t)
сюжет кажется округлить все значения XON в целое:
В чем мой код вызывает такое поведение?
Если вы используете Python2, возможно, измените значение 'return (t-ton)/5' to' return (t-ton)/5.0'. – zondo
Извините, посмотрел на неправильный номер. Это 2.7.9. – Tanja
Я удалил свой ответ, потому что он был полностью внедорожник. В то время как '5' является целым числом,' t' не является целым числом в вашем случае. Скорее, это массив NumPy значений «numpy.float64» или аналогичный. (Возможно, это зависит от системы.) Таким образом, причуда Python 2 с целым делением-это-пол-деление не вступает в игру здесь. –