【问题标题】:Error 'numpy.ndarray' object is not callable错误“numpy.ndarray”对象不可调用
【发布时间】:2021-06-11 11:12:20
【问题描述】:

我是一名使用 Python 学习机器学习的学生。我有以下代码生成一个 np.array,将其用作函数的参数并创建其绘图:

import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize as opt

def _y_(x):
    return np.sin(x/5)*np.exp(x/10) + 5*np.exp(-x/2)

x = np.arange(1, 30.01, 0.01)
y = _y_(x)
plt.plot(x, y)
plt.show()

min1 = opt.minimize(y, x0=2)
print(res1)
print()

min2 = opt.minimize(y, x0=15)
print(min2)
print()

min3 = opt.minimize(y, x0=30)
print(min3)
print()

但是当我试图找到三个不同点的函数的最小值时,我得到一个错误:

'numpy.ndarray' object is not callable

它出现在这一行:

min1 = opt.minimize(y, x0=2)

请帮我解决它!

【问题讨论】:

  • 什么是机器学习????
  • @pippo1980 最有可能是机器学习。
  • 谢谢!!!!!!!!!

标签: python numpy matplotlib


【解决方案1】:

scipy.optimize 的 minimize 函数需要一个可调用参数(函数)作为其第一个参数,根据 its documentation.

您提供数组y 作为输入参数。相反,您应该提供从x 计算y 的函数,因此您应该提供_y_。代码min1 = opt.minimize(_y_, x0=2) 可以正常工作。

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多