Valueerror numpy.poly1d()

时间:2017-09-21 14:16:10

标签: python arrays numpy

我有一个简单的数组,它是numpy.linalg.solve的结果。我用它来使用numpy.poly1d()创建一个多项式。无论我尝试什么:numpy.asarray(),numpy.reshape(),numpy.transpose()等我收到此错误:

[[ 1.         -0.99390328  0.1617277 ]]
Traceback (most recent call last):
  File "aPCv1.py", line 62, in <module>
    p = np.poly1d(c)
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/polynomial.py", line 1094, in __init__
    raise ValueError("Polynomial must be 1d only.")
ValueError: Polynomial must be 1d only.

其中c = [[ 1. -0.99390328 0.1617277 ]]是带有系数的数组的终端输出。

1 个答案:

答案 0 :(得分:2)

在我看来,你需要将c的尺寸减少1.这可以通过numpy使用:

c = np.squeeze(c)

或通过提取第一项:

c=c[0]

或使用列表理解:

c = [i for i in j for j in c]