<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python numpy和matlab都是便捷靈活的科學計算語言,兩者具有很多相似之處,但也有一些混淆的地方,這裡假定你熟悉matlab,但不瞭解numpy,記錄幾個numpy範例:
不包括結束,也即下面的b和c是一樣的。
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) b = a[:2, 1:2] c = a[:2, 1]
這與matlab不同。
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) b = a[:2, 1:3] # [[2 3] # [6 7]] print(a[0, 1]) # Prints "2" b[0, 0] = 77 # b[0, 0] is the same piece of data as a[0, 1] print(a[0, 1]) # Prints "77"
而使用整數索引(例如1)會產生降維。
import numpy as np a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) row_r1 = a[1, :] # Rank 1 view of the second row of a row_r2 = a[1:2, :] # Rank 2 view of the second row of a print(row_r1, row_r1.shape) # Prints "[5 6 7 8] (4,)" print(row_r2, row_r2.shape) # Prints "[[5 6 7 8]] (1, 4)" col_r1 = a[:, 1] col_r2 = a[:, 1:2] print(col_r1, col_r1.shape) # Prints "[ 2 6 10] (3,)" print(col_r2, col_r2.shape) # Prints "[[ 2] # [ 6] # [10]] (3, 1)"
numpy的轉置對於1維陣列的操作不發生變化。
v = np.array([1,2,3]) print(v) # Prints "[1 2 3]" print(v.T) # Prints "[1 2 3]"
Numpy broadcasting直接支援操作(加減乘除等),要求前一個矩陣的最後一維度大小和待操作矩陣的大小相同。
x = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]]) v = np.array([1, 0, 1]) y = x + v # Add v to each row of x using broadcasting print(y) # Prints "[[ 2 2 4] # [ 5 5 7] # [ 8 8 10]
如果要問我選哪個,我會建議兩個都選。很多人喜歡拿python和matlab對比,然後得出哪個更好的結論。其實吧,夠用就好。
如果是學生,或者研究人員,比如研究訊號處理,那麼用matlab比較好,有大量現成工具箱和前人的成果可以借鑑。如果是產品化專案,那麼python比較好,可以做web後臺,可以打包成應用程式,效率相對matlab也要高那麼一點點。如果是訊號、資料方面的工程人員,建議還是兩個都掌握吧,也不復雜,都是指令碼式的語言,比C++什麼的易學多了。
下面從兩者各自的應用做個對比。
Python相對於Matlab最大的優勢:免費。國內可能不是很在乎這個,但在國外是個很關鍵的問題。
Python次大的優勢:開源。你可以大量更改科學計算的演演算法細節。
可移植性,Matlab必然不如Python。但你主要做Research,這方面需求應當不高。
第三方生態,Matlab不如Python。比如3D的繪圖工具包,比如GUI,比如更方便的並行,使用GPU,Functional等等。長期來看,Python的科學計算生態會比Matlab好。
語言更加優美。另外如果有一定的OOP需求,構建較大一點的科學計算系統,直接用Python比用Matlab混合的方案肯定要簡潔不少。
python作為一種通用程式語言,可以做做Web,搞個爬蟲,編個指令碼,寫個小工具用途很廣泛。
學術界大量使用matlab做模擬,做研究的話容易找到程式碼參考;
語法相對python更靈活一些,matlab寫程式基本不用套路,所謂老夫擼matlab就一個字,幹;
有simulink。有人說simulink沒什麼用,其實還是挺有用的,比如通訊建模,另外simulink可以生產DSP或者FPGA程式碼,有的時候很有用。
python是一種通用語言,而matlab更像是一個平臺。
如果做研究,可以matlab為主;如果做產品,可以python為主。當然也有matlab做成產品的,打包成exe什麼的都不是事。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45