以python為例如何快速掌握一門語言解決特定細分問題?

時間 2021-06-06 18:53:43

1樓:

我看不出你的例子用最直接了當的演算法,如你描述的,有任何不妥。資料量就那麼大點,乙個O(n)演算法就好了。演算法越簡單,越不容易出么蛾子。

既然初學,以解決問題為導向,沒必要硬去找酷炫或者最高效率的演算法或者資料結構。

2樓:

題主這個問題看起來就是在長篇大論一本正經地問乙個很簡單的問題。不過的確是很多初學者需要知道的問題。

簡單的說就是這樣:我有乙個需求,我怎麼實現它。

其實題主搞錯了乙個地方,其實所有程式設計師的學習曲線都是這樣的,從小問題一步一步查文件搜尋,積累經驗,我至今沒見過任何乙個上來就從啃文件開始學程式設計的人。

回到題主的問題,這個問題其實說穿了很容易:

直接問朋友:不要笑,這是最簡單的方案。

搜尋引擎:最優解決方案是Google英文搜尋,基本上搜尋結果裡前兩條就有答案了,Stackoverflow和個人部落格之類。比如題主的問題,直接搜numpy value replace,保證可以得到結果。

查文件。如果你常用numpy,那你應該去把文件的get started或者tutorial瀏覽一遍,不是讓你讀,是讓你大概看一下官方入門文件都寫了哪些東西,這樣你可以給自己的問題合理地分類。比如你會發現numpy入門文件肯定有slicing and index這麼一部分(pandas當然也有),之後你就會發現,你想知道的怎麼替換數值的問題,本質上就是怎麼根據特定的條件把值index出來的問題:

你把他們index出來,然後直接賦值就行了。

所以如果題主真的在程式設計方面一點時間都不想花,又想自力更生的話,那麼遇到問題直接google好了,無論是需求還是錯誤,只要會歸納自己的問題,英文google一定會有答案。

如果可以接受花點時間,那麼去瀏覽一下python的builtin函式和類的文件,你需要用到的開源包的文件。你不需要通讀,文件這個東西用來通讀的場合很少,大部分時候是用來查的。瀏覽一下這些文件,你就會發現你能很好的提問題。

提問題的能力很重要,比如題主對於a[a==7]=0這個解決方案感覺一頭霧水,這似乎也不是個函式。可是瀏覽一下文件你就能知道,你這個問題不必要去用函式實現。讀文件可以讓你從提「numpy value replace」這樣的問題變成提「numpy indexing」這樣的問題。

而你一旦發現自己的問題是後乙個的時候,就不需要什麼搜尋引擎了,直接去文件找就行了。

如何快速掌握python的基礎嗎?

尚學堂官方 Python確實是程式語言當中相對來說較為易學的,只限於基礎部分的學習,高階Python可就不是那麼簡單的了,當然這裡只提到了基礎,因此就簡單介紹一下如何進行Python基礎的學習。首先想要掌握基礎知識,那麼首選就是經典的入門級書籍,通過書籍學習對於知識點的掌握會更加的清晰,而且書籍上記...

前端以Node為切入點,如何快速掌握後端知識體系?

白一梓 後端體系的話其實是跟語言無關的,後端解決的無非兩個問題資料處理和通訊協議處理其中後者是前後端通訊的橋梁前者表現為前後端約定的介面協議。資料處理處理最常見的就是一般資料的增刪改查,我們這裡不考慮人工智慧的之類偏運算型的後端。資料處理的選型大體分為關係型資料庫和非關係型資料庫 文件型資料庫。關係...

如何快速掌握乙個python模組?

皮卡丘 初學者就別想快了。我自己是這樣的。先上網看看一些基礎的教程,非常快的過一下,十幾分鐘,主要是了解這個module能幹什麼,特別是一些基本的功能,頭腦中建立起初步對映。然後就是用了,不用看了也白搭。我假設你的專案是需要經常用到這個module的,不然你為啥想掌握它?因為頭腦中有對映,codin...