前提・実現したいこと
以下のソースコードを実行したいです。
言語はpython3系です
発生している問題・エラーメッセージ
下記のエラーメッセージが表示されます
File "sample.py", line 34 luck = -1*((33/100)*np.log2(33/100)+(33/100)*np.log2(33/100)+(34/100)*np.log2(34/100)) ^ SyntaxError: invalid syntax
該当のソースコード
python3
1import numpy as np 2import pandas as pd 3 4data = np.load('ml-work1_dataset.npy') 5Dataset = pd.DataFrame(data,columns=['weather','temp','wet','wing','play']) 6 7A = Dataset.loc[:,['play']] 8x = A.sum() 9y = 100 - x 10En = -(x/100)*np.log2(x/100)-(y/100)*np.log2(y/100) 11 12beta_weather0 = Dataset[Dataset.weather == 0] 13beta_weather1 = Dataset[Dataset.weather == 1] 14beta_weather2 = Dataset[Dataset.weather == 2] 15 16BW0 = beta_weather0.reset_index(drop=True) 17BW1 = beta_weather1.reset_index(drop=True) 18BW2 = beta_weather2.reset_index(drop=True) 19 20Aw0 = BW0.loc[:,['play']] 21Xw0 = Aw0.sum() 22Yw0 = 33 - Xw0 23 24Aw1 = BW1.loc[:,['play']] 25Xw1 = Aw1.sum() 26Yw1 = 33 - Xw1 27 28Aw2 = BW2.loc[:,['play']] 29Xw2 = Aw2.sum() 30Yw2 = 100 - 33 - 33 - Xw2 31 32gain_weather = En - (-1*((33/100)*((Xw0/33)*np.log2(Xw0/33)+(Yw0/33)*np.log2(Yw0/33))+(33/100)*((Xw1/33)*np.log2(Xw1/33)+(Yw1/33)*np.log2(Yw1/33))+(34/100)*((Xw2/34)*np.log2(Xw2/34)+(Yw2/34)*np.log2(Yw2/34))) 33 34luck = -1*((33/100)*np.log2(33/100)+(33/100)*np.log2(33/100)+(34/100)*np.log2(34/100)) 35 36gainratio_weather = gain_weather/luck 37 38print(gain_weather) 39print(gainratio_weather) 40 41exit()
試したこと
余計なインデントや全角スペースが入っていないかは確認したつもりです。括弧の和もあっていると思うのですが動きません。試しにluckだけ別で計算させたら、構文エラーは起きずに計算できました。特に思い当たる原因はわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/17 14:43