小心numpy-arrays,对数组进行操作和对标量进行操作!
Scipy
Optimizer假定输入(初始点)是一维数组,在其他情况下通常会出错(例如,列表变成数组,如果您假设要处理列表,则事情会变得很混乱;这类问题是这在StackOverflow上很常见,调试起来并不是一件容易的事;代码交互很有帮助!)。
import numpy as npimport mathx = np.ones(1)np.sin(x)> array([0.84147098])math.sin(x)> 0.8414709848078965 # this only works as numpy has dedicated support # as indicated by the error-msg below!x = np.ones(2)np.sin(x)> array([0.84147098, 0.84147098])math.sin(x)> TypeError: only size-1 arrays can be converted to Python scalars
老实说:这是对numpy的非常基本的了解的一部分,在使用scipy的某些敏感函数时应该理解。



