這是學(xué)習(xí)Python的第五堂課瘸右,這節(jié)課是關(guān)于numpy的入門知識,我的學(xué)習(xí)方式是先認(rèn)真聽一遍視頻太颤,然后對照視頻內(nèi)容動手書寫一遍,最后再將課堂布置的作業(yè)完成一遍吃谣。
第一遍聽老師講的時候,按照老師的思路基本上能聽懂岗憋,只是還不會運用锚贱;然后開始動手了,按照課程的提示進(jìn)行操作惋鸥,發(fā)現(xiàn)問題也不是很大。因為當(dāng)我不會的時候立即看看視頻耐量,答案也就出來了。這種方式可能帶來的一個不良后果是:太依賴可能廊蜒,而沒有認(rèn)真獨立思考溅漾。后期需要更正下學(xué)習(xí)套路:針對老師提出的問題,自己認(rèn)真動腦思考解決之道添履。
好了,到了最后一步是真刀實槍的解決作業(yè)锐借。做著做著發(fā)現(xiàn)雖然我的整個思路沒有漏洞,可結(jié)果就是報錯钞翔。例如:有一題是讓我們將1-15之間的數(shù)據(jù)輸出成3行5列的形式席舍,隨后再查找不同條件的數(shù)據(jù)。
我的輸入:
In[]: arr = np.arange(1, 16)
In[]: ?arr.shape = (3, 5)
In[]: arr
可是結(jié)果就是報錯,說對“np”沒有定義稠肘,只有通過度娘搜索解決之道东且。吼吼竟然搜到了,好開心珊泳,其實只要在上面的代碼最開始輸入:import numpy as np 即可。
np的運算效率比python要高薯演,因為它的數(shù)據(jù)類型要求統(tǒng)一,這樣電腦的運行效率要高跨扮。并且在np中很多公司可以直接用验毡。
例如:計算將一組數(shù)據(jù) scores = [68, 95, 88, 70, 55, 80, 90, 98 ],當(dāng)數(shù)據(jù)大于等于90時晶通,數(shù)據(jù)標(biāo)識成A;當(dāng)數(shù)據(jù)大于70小于90時一也,數(shù)據(jù)標(biāo)識成B;當(dāng)數(shù)據(jù)小于70時椰苟,數(shù)據(jù)標(biāo)識成C树叽。
方法一:
In[]: new = list()
In[]: for i in scores:
In[]: ? ? ?if scores>=90:
? ? ? ? ? ? ? ? new.append('A')
In[]: ? ? ?elif scores>70:
? ? ? ? ? ? ? ? new.append('B')
In[]: ? ? ?else:
? ? ? ? ? ? ? ? new.append('C')
print(new)
方法二:
In[]: ? ? arr = np.where(scores[:]>=90, 'A', np.where(scores[:]>70, 'B', 'C'))
In[]: ? ? arr
很明顯看出方法二使用的代碼量要遠(yuǎn)小于方法一,這也說明np基礎(chǔ)函數(shù)的使用比循環(huán)函數(shù)高效题诵。