Ce塞西莉婭
人生苦短,I Write Python
作為一名一線研發人員,雖然最近幾年只是使用Python完成一些腳本工具的編寫,不過不妨礙自己在這裡大膽的將學習過程進行總結輸出,歡迎各位大佬拍磚。
Python的理念就是簡潔、優美。可能,你使用C++、Java等編程語言幾行甚至十幾行才可以完成的功能,Python一行代碼即可搞定。
在編程的道路上,我們要始終相信一萬小時定律,沒有什麼捷徑可以走,眼過千遍不如手過一遍,這句我們從小上學就被老師教導的語句在編程之路上依舊是成立的,“整就牛”,動手coding才是最直接的。
下面推薦一些經典的資料:
1. Python官方文檔
首推官方文檔,我想這個應該沒有什麼二義性了,你所有的疑問都是可以在這裡找到答案的,如果你擔心自己的英文不夠優秀,完全沒有關係,它也是存在中文文檔的。
2. Python編程從入門到實踐
如果你之前從未接觸過Python,甚至沒有接觸過編程,那麼很好,這本書正是為你準備的,
3. 流程的Python
這本應該算的上是進階級別的作品了。他可以帶領我們領略Pyhton的一些原理和特點, 而不只是停留在框架使用上面,仔細的去閱讀它,實踐它,你將會收貨更多。
當然,最後要說的,還是那句話,整就牛!
最後,不要再去參與什麼IDE、編輯器的聖戰。VisuaStudio、PyCharm、Vim、VSCode等等等等,哪個順手就用哪個,多多編碼,多多實戰,才是快速提升自己編程功底的便捷之道。用黑哥的一句話來總結,正就牛!
一個程序員的奮鬥史
我是自學的,找著了一些入門的視頻,跟著學。差不多了,就做一些簡單的項目,敲代碼加深印象。後來又買了兩本書,沒事了就抽空看看。自己一個人學習特無聊,然後就在網上跟大家交流了。你要是想學python,我們可以多多交流,一起進步。我目前主攻爬蟲和Django
這輩子就python了
需要明確一點:沒有捷徑。編程是需要反覆練習的。也就是頻繁的敲代碼驗證所學所想。
因為之前我一直用Java,抽空學習了python,然後用來爬了一些不能言說的東西,也用過其他編程語言;所以感覺最快的速度就是實戰學的最快,嘿嘿嘿!
分兩種情況學習:
沒有編程語言基礎,0基礎開始學習;
- 有其他編程語言基礎然後學習Python。
沒有編程語言基礎開始學習
1、在培訓機構報名學習。
不得不說這是最有效的學習方法。因為價格不菲,交錢了,所以學習格外有動力;還因為學習環境更能驅動自己,還因為有更易交流的環境和人,當然培訓機構和老師為了口碑,一般都會把最精華的交給學生。這時候只要跟隨老師的課堂節奏,基本都能學會。更深層的學習稍後詳談。
培訓機構就不介紹了,避免廣告嫌疑。
2、自學、或者學校。
這兩個放一起,其實學校老師教和自己學基本差別不是數量級的。
計算機技術類的學習網站還是挺多的。無論是視頻、博客、書籍等。
零基礎的話推薦“視頻”+“書籍”+ 敲代碼練習
視頻:-- 圖形是最有效記憶和理解方式。
書籍:-- 加深記憶、隨時翻閱回憶,相當於工具。
視頻基於製作成本和方式,並不是所有內容都會視頻中列出。學習資料是內容最全的,只是需要的時間成本更多,但也是學習的知識面最全的。必不可少。
書籍選擇對於編程類的很簡單:一般都是 **從入門到精通,**程序設計, **編程思想, ** 設計模式, ** 實戰。剛開始學從 “**入門到精通”的書入手就可以了,在天貓、京東、噹噹搜索,然後選銷量最多的就行了。其實也可以 看電子的,看你的個人喜好了。書中的例子最好都自己代碼實現一下。
博客基本是CSDN,博客園,簡書,W3C、RUNOOB等
練習(敲代碼)
編程的學習,反覆的敲代碼驗證視頻或者書籍中例子,或者驗證自己的想法,反覆練習是必不可少的。這裡的反覆練習,並不是說好像背課文一樣一字不落的背下來。一定是先想明白原理,在動手敲,最後的目的是提及某個問題,自己想出解決方案,並代碼實現出來。切忌背代碼。
有其他編程語言基礎然後學習Python
基本你們也是老鳥了,這樣學起來很簡單啊,看看語法,看看基本類型,大概結構,開始碼代碼吧,寫著寫著、debug著debug著就會了。
沒有什麼捷徑:記住基本語法變量等+反覆練習。實踐出真知。進步最快的方法就是用學的這個語言實現功能,解決問題,看大神的代碼。看書。是的,最後到大神只能看各種資料了,視頻是給初學者用的。
說簡單也簡單,說難也難。簡單的是代碼的搬運工,難得是把問題用代碼解決出來。世界三大科學思維之一是:計算思維。
錘哥編程
我是這樣學的。
碎片時間的利用
坐電車,午休間隙,睡前五分鐘,入眠輕鬆松。
各種有意思的工具
- iPhone手機的pythonista,隨時隨地可以編程看效果。
- 頭條裡的python文章,這個特別好,因為頭條很智能,會不停的推送一些相關文章。同一個問題從不同角度看,也會加深印象,容易找到自己喜歡和容易接受的講解方式。
- python turtle,小朋友也能接受,我總是相信沒有學不會的,只有路子不對的。
各種視頻
這個就很重要,微軟也專門出了一系列的免費視頻。看視頻會印象極其深刻,也可以邊看邊操作,適合初學者。
朋友一起
一個人總是很難堅持下去,找朋友一起,可以交流,訴苦,互相鼓舞。如果參加個學習會就更棒了,偶爾來個發表,掀起個學習小高潮。
解決眼前的小問題
不貪大,人工智能呀,數據分析呀,挺好,但不急。先著眼於當下的小問題,提高下工作效率,一點一點的積累成就感。
總之,零壓力,當興趣,一定能走的更遠。謝謝。
DanceWithPython
1、首先,勤於動手敲代碼。入門時我是照著《笨辦法學Python》這本書一邊看,一邊找著書本敲代碼,做實驗。剛開始不求全都明白,先熟悉基本語法和內置函數,使自己都一個大致的瞭解。
2、網上查找一些知名博客和視頻教程,對於自己不懂的知識點重點學習,一遍一遍看教程,如廖雪峰的網站、51cto的博客和視頻教程前後看了不少。當然,看的過程中一定是要動手的,找著做一遍慢慢就懂了直至匯融貫通。
3、給自己找幾個小項目練手。比如學習從網站批量下載圖片、下載電子式,簡單的數據分析等。只有自己獨立做出了小項目,整個過程完全實現,才是真的掌握了語言。
以上是個人的經驗分享,供參考。希望對你有用!
Office聯璧Windows
8 個 Python 高效數據分析的技巧
不管是參加Kaggle比賽,還是開發一個深度學習應用,第一步總是數據分析,這篇文章介紹了8個使用Python進行數據分析的方法,不僅能夠提升運行效率,還能夠使代碼更加“優美”。
一行代碼定義List
定義某種列表時,寫For 循環過於麻煩,幸運的是,Python有一種內置的方法可以在一行代碼中解決這個問題。
下面是使用For循環創建列表和用一行代碼創建列表的對比。
x = [1,2,3,4]
out = []
for item in x:
out.append(item**2)
print(out)
[1, 4, 9, 16]
# vs.
x = [1,2,3,4]
out = [item**2 for item in x]
print(out)
[1, 4, 9, 16]
Lambda表達式
厭倦了定義用不了幾次的函數?Lambda表達式是你的救星!Lambda表達式用於在Python中創建小型,一次性和匿名函數對象。它能替你創建一個函數。
lambda表達式的基本語法是:
lambda arguments: expression
請注意,只要有一個lambda表達式,就可以完成常規函數可以執行的任何操作。你可以從下面的例子中,感受lambda表達式的強大功能:
double = lambda x: x * 2
print(double(5))
10
Map和Filter
一旦掌握了lambda表達式,學習將它們與Map和Filter函數配合使用,可以實現更為強大的功能。
具體來說,map通過對列表中每個元素執行某種操作並將其轉換為新列表。在本例中,它遍歷每個元素並乘以2,構成新列表。請注意,list()函數只是將輸出轉換為列表類型。
# Map
seq = [1, 2, 3, 4, 5]
result = list(map(lambda var: var*2, seq))
print(result)
[2, 4, 6, 8, 10]
Filter函數接受一個列表和一條規則,就像map一樣,但它通過比較每個元素和布爾過濾規則來返回原始列表的一個子集。
# Filter
seq = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x > 2, seq))
print(result)
[3, 4, 5]
Arange和Linspace
Arange返回給定步長的等差列表。它的三個參數start、stop、step分別表示起始值,結束值和步長, 請注意,stop點是一個“截止”值,因此它不會包含在數組輸出中。
# np.arange(start, stop, step)
np.arange(3, 7, 2)
array([3, 5])
Linspace和Arrange非常相似,但略有不同。Linspace以指定數目均勻分割區間。所以給定區間start和end,以及等分分割點數目num,linspace將返回一個NumPy數組。這對繪圖時數據可視化和聲明座標軸特別有用。
# np.linspace(start, stop, num)
np.linspace(2.0, 3.0, num=5)
array([ 2.0, 2.25, 2.5, 2.75, 3.0])
Axis代表什麼?
在Pandas中,刪除一列或在NumPy矩陣中求和值時,可能會遇到Axis。我們用刪除一列(行)的例子:
df.drop( Column A , axis=1)
df.drop( Row A , axis=0)
如果你想處理列,將Axis設置為1,如果你想要處理行,將其設置為0。但為什麼呢?回想一下Pandas中的shape
df.shape
(# of Rows, # of Columns)
從Pandas DataFrame中調用shape屬性返回一個元組,第一個值代表行數,第二個值代表列數。如果你想在Python中對其進行索引,則行數下標為0,列數下標為1,這很像我們如何聲明軸值。
Concat,Merge和Join
如果您熟悉SQL,那麼這些概念對您來說可能會更容易。無論如何,這些函數本質上就是以特定方式組合DataFrame的方式。在哪個時間跟蹤哪一個最適合使用可能很困難,所以讓我們回顧一下。
Concat允許用戶在表格下面或旁邊追加一個或多個DataFrame(取決於您如何定義軸)。
Merge將多個DataFrame合併指定主鍵(Key)相同的行。
Join,和Merge一樣,合併了兩個DataFrame。但它不按某個指定的主鍵合併,而是根據相同的列名或行名合併。
Pandas Apply
pply是為Pandas Series而設計的。如果你不太熟悉Series,可以將它想成類似Numpy的數組。
Apply將一個函數應用於指定軸上的每一個元素。使用Apply,可以將DataFrame列(是一個Series)的值進行格式設置和操作,不用循環,非常有用!
df = pd.DataFrame([[4, 9],] * 3, columns=[ A , B ])
df
A B
0 4 9
1 4 9
2 4 9
df.apply(np.sqrt)
A B
0 2.0 3.0
1 2.0 3.0
2 2.0 3.0
df.apply(np.sum, axis=0)
A 12
B 27
df.apply(np.sum, axis=1)
0 13
1 13
2 13
Pivot Tables
最後是Pivot Tables。如果您熟悉Microsoft Excel,那麼你也許聽說過數據透視表。Pandas內置的pivot_table函數以DataFrame的形式創建電子表格樣式的數據透視表,,它可以幫助我們快速查看某幾列的數據。下面是幾個例子:非常智能地將數據按照“Manager”分了組
pd.pivot_table(df, index=["Manager\
狼眼觀察
Python作為人工智能和數據分析第一語言,使得Python程序員成了當前人才市場的“搶手貨”,工資待遇也水漲船高。針對零基礎、非計算機專業的同學想要學習Python,千鋒認為可以著重從以下幾個方面來學習。
一、注意細節
區分優秀程序員和一般程序員的重要標準,就是對細節的注重程度。事實上,這也是任何行業區分好壞的標準。如果缺乏對工作中每個微小細節的注意,你的工作成果將缺乏重要的元素。拿Python編程來講,注意細節將會讓你遠離各種bug和難用的系統。
二、發現不同
程序員長年累月的工作會培養出一個重要技能,那就是對於不同點的區分能力。有經驗的程序員看到兩個僅有細微差別的程序,可以立即指出其中的不同。他們還會寫出程序讓這件事更加容易,以此增加對程序裡的bug 以及其他問題的敏感性。
三、要問,不要盯著看
你只要寫代碼,就會出現 bug。它意味著你寫的代碼有瑕疵、有錯誤、有問題。你的bug將會藏在你代碼的某處,你必須找到它們。你不能只是坐在電腦前盯著屏幕上的代碼,希望答案能自己跳出來。這樣做不會有額外的信息,你需要用額外的信息來解決問題,所以你得主動去尋找。
四、不要複製粘貼
你必須手動將每個項目的代碼程序打出來,複製粘貼會讓這些變得毫無意義。完成項目的目的是訓練你的雙手和大腦思維,讓你有能力讀代碼、寫代碼、觀察代碼。如果你複製粘貼,那你就是在欺騙自己,練習的效果也將大打折扣。
上海千鋒教育
怎樣學python,要因人而異。
首先,具有其他語言編程基礎的人,可以快速入門。具體建議如下:簡單瞭解python的語法—>學習現有代碼(同事實現的簡單腳本或者開源庫,根據個人能力選擇)—>動手實踐(最好基於具體的任務來做);這也是我個人的python學習經歷,工作中的主要語言是C++,所以並沒有花很大精力去學習python,用的多了慢慢就熟了。
其次,沒有其他語言編程基礎的同學,需要投入精力。最好從基礎的語法學起,建議不用投入過多精力熟記語法,因為通常記不住,即使記住了也不會用。我們做到“知道”就可以了,具體用時可以再去查詢。這樣學習會更高效。
再次,具有python基礎,想要提高的同學。方法無他,一學二看三練:學具體領域的庫,看大牛的代碼,動手練習。例如數據處理領域,pandas是必須的,深度學習領域tensorflow,pytorch,mxnet等選擇一個。
最後,經常看到xx天入門xx,入門的概念是什麼,取決於每個人對自己的定位。成功沒有捷徑,只能砥礪前行,就像賣油翁一樣(無他,唯手熟爾!)。
rongzhenlee
我看的尚學堂的Python400集學的,學了一個多月了,基本語法都學的差不多了,還在繼續學習,感覺很有效果
Ce塞西莉婭
你好😊,無論是學習任何一門語言,基礎知識,就是基礎功非常的重要,找一個有豐富編程經驗的老師或者師兄帶著你會少走很多彎路, 你的進步速度也會快很多,無論我們學習的目的是什麼,不得不說真的是一門值得你付出時間去學習的優秀編程語言。如在選擇培訓時一定要多方面對比教學,師資,項目,就業等,慎重選擇。回答問題可以的話(給點贊求關注)謝謝!😊