2012-08-08 3 views
19

저는 파이썬 2.7을 사용 중이며 1.00000000에서 3.0000000008 사이의 임의의 데이터에 대해 포 캐스트를 시도하고 있습니다. 배열에 약 196 개의 항목이 있는데 오류가 발생합니다.Numpy`ValueError : 피연산자가 모양과 함께 브로드 캐스트되지 못했습니다. '

ValueError: operands could not be broadcast together with shape (2) (50) 

본인 스스로이 문제를 해결할 수없는 것 같습니다. 관련 문서에 대한 도움말이나 링크는 크게 감사하겠습니다. 여기

당신은, 내가 그이 오류

nsample = 50 
sig = 0.25 
x1 = np.linspace(0,20, nsample) 
X = np.c_[x1, np.sin(x1), (x1-5)**2, np.ones(nsample)] 
beta = masterAverageList 
y_true = ((X, beta)) 
y = y_true + sig * np.random.normal(size=nsample) 

답변

17

을 마지막 줄의 우측에서 두 번째 항과 같은 모양이없는 Xbeta 경우 (예 : nsample)를 생성 사용하고있는 코드입니다 이 유형의 오류가 발생합니다. 배열의 튜플에 배열을 추가하려면 모두 같은 모양이어야합니다.

나는 numpy broadcasting rules을보고 싶습니다.

+0

내 배열의 내용이 변경되면 현재 168 개의 항목이 있습니다. 내 모양은 현재 (1,168) (168, 4)입니다. 그럼 둘 다 똑같은 모양이 (1, 168) (1, 168)이어야한다는 뜻입니까? –

+0

죄송합니다. 게시하는 코드를 수정했습니다. 그러나 모양이 실제로 어떻게 (1,168) (50,4)인지 다시 되돌려 놓았습니다. A 나는 그들을 (1,168) (1,168) 또는 (50,4) (50,4)이되도록해야합니까? –

+0

당신의 배열이 어떤 크기인지 나는 정말로 대답 할 수 없다. 그들은 당신이 시도하고있는 방식으로 그들을 추가하기 위해서 동일 할 필요가 있습니다. – JoshAdel