2017-09-21 2 views
0

numpy.linalg.solve의 결과 인 간단한 배열이 있습니다. numpy.poly1d()를 사용하여 폴리곤을 만드는 데 사용합니다. 아무리 내가 무엇을하려고 : numpy.asarray를(), numpy.reshape(), numpy.transpose (등) 나는이 오류가 발생합니다 :Valueerror numpy.poly1d()

c = [[ 1. -0.99390328 0.1617277 ]]는 계수 내 배열의 단자 출력
[[ 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. 

. 사용이 NumPy와 수행 할 수 있습니다 (1)에 의해 C의 크기를 줄일 필요가 같은

+1

왜 계수가 두 번째 목록 안에 싸여 있습니까? '[[...]] 대신'c = [1.0, -0.994, 0.162]'를 사용하여 코드를 시험해 보라. 이것이 'linalg.solve'기능의 일반적인 출력물이라면, numpy.poly1d (c [0])'을 써서리스트 내부의리스트를 처리하십시오 – offeltoffel

답변

1

나에게 보이는 :

c=c[0]

:

또는 첫 번째 항목을 추출하여

c = np.squeeze(c)

또는 목록 이해 사용 :

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