[綜合]無題 無名 ID:Oo5vB0mo 2019/03/03(日) 16:11:36.119 No.14029773評分:0, 年:0, 月:0, 週:0, 日:0, [+1 / -1] 最後更新:2019-03-08 15:10:42
這裡程設超新手
正開始學python
網路上看到
import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series([1, 2, 3])
fig, ax = plt.subplots()
s.plot.bar()
fig.savefig('my_plot.png')
看不懂
fig, ax = plt.subplots()
plt.subplots()會跑出個空白的圖
為甚麼可以assign給fig 和 ax
這是甚麼意思?
fig.savefig('my_plot.png')
而且他怎麼可以這樣存檔?
圖不是用s序列裡的值畫出來的嗎?
然後我想依樣畫葫蘆
import pandas as pd
import matplotlib.pyplot as plt
import mglearn
fig = mglearn.plots.plot_linear_regression_wave()
fig.savefig('my_plot.png')
想把這張圖mglearn.plots.plot_linear_regression_wave()存成檔案
不知道跟怎麼做才對
現在遇到問題上網爬文 連爬文有時都看不懂
不知道各位一開始都是怎麼學習的?
還有在哪個論壇討論?
我爬文常常會爬到stackoverflow
不確定是不是該去那邊半個帳號
無題 無名 ID:VES7saBM 2019/03/03(日) 16:34:56.143 No.14029968超新手就乖乖回去學C摸pointer、不要跟風學人家python搞大數據了
無題 無名 ID:FuzYeKiI 2019/03/03(日) 16:36:21.880 No.14029984有api文件就一個個看說明吧
看不懂英文就用google翻譯
無題 無名 ID:Oo5vB0mo 2019/03/03(日) 16:41:54.183 No.14030034
無題 無名 ID:VES7saBM 2019/03/03(日) 16:43:50.176 No.14030051>>14030034>你是說C語言嗎?
>聽說難到靠北 那不適合超新手吧?
......也許coding不適合你 祝福你找到更好的語言
無題 無名 ID:FuzYeKiI 2019/03/03(日) 16:44:26.497 No.14030059
無題 無名 ID:g4mwTqpg 2019/03/03(日) 16:59:22.809 No.14030196
無題 無名 ID:Yv506Fcg 2019/03/03(日) 16:59:36.185 No.14030200>>14030034C 可以寫出 Python Interpretor
反過來 Python 不能
學 C 好處 入門 C# 容易
學 C# 好處 入門 Java 容易
C# Lamda 表達式和匿名用法則和 Javascript 很像
程式語言不該只會一種 除非你要非常非常精通 而不是應用
無題 無名 ID:z/iSeK8A 2019/03/03(日) 17:00:23.950 No.14030208害我想到以前自學8051一條一條asm刻霹靂燈的菜雞年代
無題 無名 ID:Yv506Fcg 2019/03/03(日) 17:04:58.953 No.14030243純軟體應用可以不用學 C 直接學 C#
但是學 C 還可以去搞韌體、Arduino 等等
C 編譯出的程式也可以包裝成 dll
給 .NET C# 調用函式庫 享有機器碼的隱密又有高級語言的便利
無題 無名 ID:.LrFG7Pc 2019/03/03(日) 17:09:12.619 No.14030279如果你只是三分鐘熱度學好玩的
那python玩玩就好
如果你想深究程式世界、或想當高等工程師
還是從C學起才底子深厚
C不是不適合新手學,是不適合沒心要學的人學
學完C再去學C++、java、C#這幾個選一,然後再學python、ruby這種比較高階的
stackoverflow基本上你能遇到的問題上面都有人問過了
要懂得用,但不需要自己辦帳號
如果你查不到你的問題通常是因為你描述問題的方法不對,而不是沒人問過
或是你的問題真的太低能他不給問,他們會審核問題砍掉太低能的
要學程式一定要會英文
但如果你只是想玩玩python不想深究的話其實也不那麼需要
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 17:31:59.398 No.14030513>>14030200其實是學C作古比較容易
C#要學建議直接學C#,學C出身的人很容易把自己蓋輪子那套搬到C#。
然後就出現狗死爛扣。
無題 無名 ID:ipcZtTiY 2019/03/03(日) 18:01:09.955 No.14030756我搞不太懂為什麼學校很愛教c,多數人遇到的應該都是更高階的語言
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 18:06:02.740 No.14030799>>14030756因為用C比較好教書上的理論,與套用數學的算法。
另外學C才能對於一些電子原理有較深的體悟。
但是這些呢.....除非你是世界前10%的人不然學起來對於工作的幫助都沒那麼直接。
因為實務上你要學習"怎麼用"反而比較重要。
畢竟這些困難需要突破的問題已經有人解過了,
與其你在花時間重作不如將別人封裝好的工具拿來用。
當然還有另外一個更直接的原因:教授不想學新語言
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 18:09:18.544 No.14030833>>14030807屁拉!!!你知道Visual Studio C#預設是不給你用pointer的嗎?
然後JAVA也不建議你用pointer
套用學C學指標會比較好學物件,我看是會先被自己觀念調整那關整死
無題 無名 ID:XTqQwi7g 2019/03/03(日) 18:19:01.910 No.14030944
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 18:22:06.340 No.14030971>>14030944【JAVA沒有pointer只有reference】教學與實作上我當然知道,
我是預設他會把pointer觀念套用到reference
,而且
>>No.14030853 這段也證實我的想像。
我現在只是在想要不要無限上綱到底層都是010101記憶體處理,
是不是要在叫大家先去學組語這塊而已。
無題 無名 ID:.LrFG7Pc 2019/03/03(日) 18:54:08.204 No.14031295之前在stackoverflow看到一篇滿有道理的
他說不同語言的使用者對pointer跟reference這兩個單字會有不同的認知
像是C只有pointer,Cer就常常認為reference就是pointer的別稱、毫無不同
C++兩種東西都有,C++er就會用C++裡兩者的性質去區分兩者
java的那個東西
在我這個C++er的眼裡看起來就是比較接近Object*而非Object&
所以我叫他pointer
也許javaer把它叫做reference,但語言上的差異仍舊不影響我們指稱的是同一個東西的事實
javaer花了無數的心血試圖說服純新手接受用一樣的方式宣告int跟Object會得出不同性質的規則
但對一個學過C的人,只需要一兩句話就能把這整件事交代得乾乾淨淨
還搞得比學java入門的人還清楚
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 18:55:03.061 No.14031309
無題 無名 ID:DtjcU79s 2019/03/03(日) 19:12:03.471 No.14031499>>14030799又不是說用C就需要重做輪子
雖然C的套件管理不成熟 還是能用library啊
不先google看有沒有合適的library 反而自蓋輪子 那是他們的問題吧
>>14030807應該說先學C再去學其他的比較搞得懂爲什麼要學物件導向吧
無題 無名 ID:YUxb.vaQ 2019/03/03(日) 19:18:29.473 No.14031565資工系要學C很簡單,就是因為他偏向低階語言。
這樣配合"計算機結構"跟"計算機組織",你才能搞懂電腦是怎樣從底往上建構,看情況可能還學組合語言。
無題 無名 ID:V8yc87WQ 2019/03/03(日) 19:29:47.933 No.14031692>物件導向
從來都沒弄懂過這東西的實用性在哪?
感覺只是把很簡單的東西賣弄的很複雜而已
弄一堆沒必要的繼承邏輯上根本狗屁不通
無題 無名 ID:OFjfqCwE 2019/03/03(日) 19:37:56.323 No.14031807>>14031692主要是用於分工與重用。
物件導向的最重要目的是割分"介面"與"實做",使的程式片段變成一個個library。因此使用物件導向來提供:建構、解構、複製、移動、儲存狀態等等功能。
無題 無名 ID:.LrFG7Pc 2019/03/03(日) 19:39:13.919 No.14031818>>14031692寫小程式的時候用不到
但寫大程式的時候就需要了
那些繼承可以大幅減少重複的程式碼
教學的時候不可能塞給你一個100KB的程式碼給你看
所以看教學範例都會覺得這根本狗屎
因為他寫給你的物件導向小程式真的就是狗屎
但等你真的動手寫了100KB的大程式,物件導向就是會比較漂亮
當然也不排除你遇到了真的寫得很爛的大型物件導向程式
世上一切工具都有人能把它用爛
無題 無名 ID:V8yc87WQ 2019/03/03(日) 19:45:48.838 No.14031906
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 19:48:45.033 No.14031933>>14031499看過很多例子,覺得自己學C出身換跑道就以為自己好棒棒,連找套件/重學開發習慣都不肯。
然後就自己硬幹起來弄輪子。
因此主要是對於
"要學OO語言先學C會比較好上手"這種論調抱持不以為然
無題 無名 ID:V8yc87WQ 2019/03/03(日) 19:58:14.380 No.14032029已經不行了...
已經都是物件導向的腦的綜合....
無題 無名 ID:Oo5vB0mo 2019/03/03(日) 20:14:58.396 No.14032229我原PO拉
早就沒呼吸了
又不斷發現新問題
而且又不知道怎麼解決
寫摳的都不會遇到卡死的情形嗎?
無題 無名 ID:DtjcU79s 2019/03/03(日) 20:21:57.447 No.14032293>>14032229plot_linear_regression_wave 沒return值吧
https://github.com/amueller/mglearn/blob/master/mglearn/plot_linear_regression.py
無題 無名 ID:f334woJs 2019/03/03(日) 20:25:56.556 No.14032334去查document不就清楚了
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html
subplots這個方法return兩個物件(fig,ax)
所以用兩個local variable去接收,沒記錯的話,這個動作術語叫unpacking
新手直接碰pandas和matplotlib太硬了,光矩陣就能把你搞到頭昏腦脹
建議買Bill Lubanovic的精通Python
從第一頁開始讀,觀念會好很多
無題 無名 ID:Oo5vB0mo 2019/03/03(日) 20:32:24.929 No.14032392
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 20:32:58.830 No.14032400>>14029773最直覺的建議是,去找實際能跑的程式碼下去改。
有些時候書上給的範例不一定完整,甚至是虛擬碼。
用來解釋"觀念"用的,至於與實作上可能會落差。
而在這個年頭,有時甚至你的編譯器版本與書上的不同還會發生無法建置的問題。
那又是題外話了。
然後回到你的範例,我的直覺是有東西你沒有寫出來。
看不太出來你網路上面的"s, (fig,ax)"之間的關係。
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 20:35:46.256 No.14032424>>14032392不用先去學C,真的不必。很多自稱大師會跟你說不學C就會BLABLABLA,
但他們不會跟你說的是"你看不懂C語言他們也不會負責教你"
與其浪費學一個你之後還要轉換觀念的過度東西,
不如直接想辦法在你想學的東西上找學習資源。
無題 無名 ID:RqlhZG8w 2019/03/03(日) 20:37:58.477 No.14032437教你一個超有用的python內置function
help()
有什麼不懂的物件就用這個來查
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 20:39:05.656 No.14032455
無題 無名 ID:DtjcU79s 2019/03/03(日) 20:39:33.036 No.14032464>>14032392看了一下文件
我猜如果你在 plot_linear_regression_wave() 的最後加上 return plt.gcf() 應該就行了
無題 無名 ID:.LrFG7Pc 2019/03/03(日) 20:42:01.876 No.14032494C語言的問題我有看到應該都會回答
綜合我沒看到你就去程設板,遲早會有答案
但你用python或那些我也沒用過的library,我看到了也幫不了你
我很確定智障丸不會幫你
他只會嘴砲
無題 無名 ID:ipcZtTiY 2019/03/03(日) 20:42:32.863 No.14032497>>14032229對新手來說,建議至少先學hello word
不是因為這個比較簡單,而是在出問題的時候可以叫它吐些東西出來讓你除錯,例如無窮迴圈裡就會一直重複吐同樣的東西
至於更前面你說要回去hello word,這我沒意見,每個人學的順序不同,不是每個教學都適合你,也沒有人說你邊學邊查就會學不好
不過邊學邊查的學習曲線應該比較陡峭
先學哪一個的問題,我認為都行,反正你並沒有一定要用哪個語言才能做好你想做的事
無題 無名 ID:e8w37qr6 2019/03/03(日) 20:52:50.452 No.14032579最近也在開始學python
python是不是和matlab很像啊…
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 20:54:03.281 No.14032590>>14032494挖幹,匿名版做這種宣言,我第一次看到有人可以下限低到這種程度。你不是PTT來的外來種吧?
>>14032392重新想了一下你的問題,你的問題應該是不知道為何以下的差異
【"畫面有東西/有產出"與"回傳接收值"】這點上面(我想像的)。
如果是這樣,那就很簡單,因為一個函式在寫的時候,你可以做很多事情,
最後才丟回傳值。
舉例來說(這只是範例,編譯器不會過的)
object 粗乃丸(){
print("丸");
return (object) new丸();
}
如果呼叫【object 新丸 = 粗乃丸();】
指派一個新的粗乃丸,那它其實也會順便印出丸。
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 20:58:21.721 No.14032635>>14032392另外最好的話,把你看到的完整程式碼丟上,或者是把頁面放上。
畢竟不一定每個人都看過知道你說的那段文章,程式功能。
無題 無名 ID:VUszAcDM 2019/03/03(日) 21:04:20.681 No.14032702本科系的人不要騙外系的人去學C啦!
100個人去學C/C++,
99.9個爆死!
非本科系的人,
直接學習高階語言就行了,
python是個不錯的選擇。
學的時候,
盡量專注在如何解決你想要解決的問題,
不要在語言的規格上鑽牛角尖,
也不要一種語言還沒摸熟,
就急著想要學另外一種語言。
無題 無名 ID:DtjcU79s 2019/03/03(日) 21:37:02.071 No.14033101>>14032590又沒有那麼複雜
就是輸出到畫面上的方法通常都是呼叫某個function
而return是function結束時要回傳東西
呼叫某個function跟return一點關係都沒有
無題 無名 ID:dwVBaLEQ 2019/03/03(日) 21:39:28.416 No.14033128>>14033101你要問原PO阿
>恩 我以為能在console輸出的就是有return
我是根據這段話猜測他的癥結點的
無題 無名 ID:DtjcU79s 2019/03/03(日) 21:48:08.653 No.14033230>>14032464對了
怕你誤會我的意思
我猜測的方法是
你要改mglearn這個library的內容
或是複製一份(對你來說可能有點難)
在plot_linear_regression.py裡
plot_linear_regression_wave() 這個function的最後加上 return plt.gcf()
應該就行了