У меня есть функцияКак построить функцию, определенную с def?
np.sin(x/2.) * np.exp(x/4.) + 6. * np.exp(-x/4.)
и я могу построить его, используя следующий код:
x = np.arange(-5, 15, 2)
y = np.sin(x/2.) * np.exp(x/4.) + 6. * np.exp(-x/4.)
plt.plot(x, y)
plt.show()
но если я определяю функцию зарисовки не работает:
rr = np.arange(-5, 15, 2)
def y(o):
return np.sin(o/2.) * np.exp(o/4.) + 6. * np.exp(-o/4.)
def h(b):
return int(y(b))
plt.plot(rr, h)
plt.show()
Почему это произойдет, и как я могу изменить код для построения функции?
Если вы действительно хотите создать дополнительную функцию для передачи данных в 'int', вы можете просто заменить содержимое' h (b) 'на' return y (b) .astype (np.int) '. И если вы действительно (по какой-либо причине) хотели бы сохранить цикл, это намного быстрее, если вы сначала определяете весь массив как «l = np.zeros_like (b, dtype = np.int)»; для большого размера 'b', создающего пустой список, и добавляемые значения будут намного медленнее (но на самом деле цикл здесь не нужен: используйте силу' numpy' и его операции над массивами!) – Bart