2015-06-23 48 views
-1

我想要分別計算xy變量的迴歸,trace_notwwtPython stats.linregress語法錯誤

該變量是151 x 1數組。

的代碼輸出語法錯誤:

File "./seabed_dip_correction.py", line 32 
    slope, intercept, r_value, p_value, std_err, Syy/Sxx = stats.linregress(trace_no,twtt) 
SyntaxError: can't assign to operator 

我試圖切換操作員周圍即stats.linregress() = ...但不工作。

這是我的代碼,有人可以告訴我哪裏出錯了嗎?

data=np.genfromtxt('trace1_offset_gather.dat') 
trace_no=data[:,[0]] 
twtt=data[:,[1]] 

slope, intercept, r_value, p_value, std_err, Syy/Sxx = stats.linregress(trace_no,twtt) 
+0

那是什麼'SYY/Sxx'的事情嗎? – ZdaR

回答

3

您的上一個變量或相當一對變量無效。

Syy/Sxx 

如果被認爲是一個變量,知道你不能有/在變量名。

Python identifiers and keywords

Identifiers (also referred to as names) are described by the following lexical definitions:

identifier ::= (letter|"_") (letter | digit | "_")* 
letter  ::= lowercase | uppercase 
lowercase ::= "a"..."z" 
uppercase ::= "A"..."Z" 
digit  ::= "0"..."9" 

Identifiers are unlimited in length. Case is significant.

如果這意味着是兩個變量,則不能將值分配給這樣一個表達式,它會像說

a/b = 2 

這在數學中是有道理的,但不是在Python中,你必須給一個變量賦值,或者在這種情況下將N值解包爲N變量。

編輯
功能scipy.stats.linregress只返回5個值,他們

slope, intercept, r_value, p_value, std_err = stats.linregress(x,y) 
+0

我刪除了「/」並用斜線,截距,r,p,err,Sxx = stats.linregress(trace_no,twtt)代碼運行代碼,但是現在它有一個值錯誤:「File」./seabed_dip_correction .py「,第32行,在 斜率,截距,r,p,err,Sxx = stats.linregress(trace_no,twtt) 文件」/usr/lib/python2.7/dist-packages/scipy/stats/ stats.py「,行3100,inlineregress ssxm,ssxym,ssyxm,ssym = np.cov(x,y,bias = 1).flat ValueError:太多值來解包。你能幫助我嗎? – Kg123

+0

@ Kg123該函數只顯示返回5個值,不能將5個值返回到6個變量中。 – CoryKramer

+0

我確實嘗試了5個值,但是無論數目是多少,錯誤都是一樣的? – Kg123