#python #numpy #typeerror #python-3.8
#питон #тупой #ошибка типа #python-3.8
Вопрос:
Я пытаюсь построить простую линейную регрессию, используя numpy и seaborn. Однако я не могу заставить умножение работать для моей y
переменной. Ошибка, которую я получаю, заключается в следующем:
Ошибка типа: неподдерживаемые типы операндов для *: ‘int’ и ‘builtin_function_or_method’
Я пытался передать параметры в int()
функции, но все еще не смог решить проблему.
Код выглядит следующим образом:
import numPy as np
import matplotlib.pyplot as plt
import seaborn as sns
np.random.seed(123)
N = 20
beta0 = -4
beta1 = 2
x = np.random.randn(N)
e = np.random.randn(N)
y = beta0 beta1 * x e
true_x = np.linspace(min(x), max(x), 100)
true_y = beta0 beta1*true_x
fig, ax = plt.subplots()
sns.scatterplot(x, y, s = 40, label = 'Data')
sns.lineplot(true_x, true_y, color = 'red', label = 'True Model')
ax.set_xlabel('x', fontsize = 14)
ax.set_title(fr"$y = {beta0} ${beta1}$x epsilon$", fontsize = 16)
ax.set_ylabel('y', fontsize=14, rotation=0, labelpad=10)
ax.legend(loc = 4)
sns.despine()
plt.show()
Комментарии:
1. Измените
np.random.randn
наnp.random.randn()
. В данный момент вы не вызываете его, а просто присваиваете ему значениеx
иe
, что явно не сработает.2. Пожалуйста, отследите. Или, по крайней мере, покажите проблемную строку! Ошибка указывает, что 2-й аргумент является функцией, а не вычисляемым массивом.
3. @TomKarzes большое вам спасибо. Я обновил код и вставил
N
внутрь()
и добавилplt.show()
. Все работает нормально. Пожалуйста, добавьте свой комментарий в качестве ответа, и я отмечу его как правильный ответ.