中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?numpy和matlab的差異是什么

發布時間:2022-07-13 14:12:41 來源:億速云 閱讀:158 作者:iii 欄目:開發技術

本篇內容介紹了“Python numpy和matlab的差異是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

numpy和matlab的幾點差異

Python numpy和matlab都是便捷靈活的科學計算語言,兩者具有很多相似之處,但也有一些混淆的地方,這里假定你熟悉matlab,但不了解numpy,記錄幾個numpy實例:

1、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]

2、Numpy.ndarray切片的修改會引起原矩陣的修改

這與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"

3、numpy使用切片索引(例如1:2)不會產生降維

而使用整數索引(例如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)"

4、不同于matlab

numpy的轉置對于1維數組的操作不發生變化。

v = np.array([1,2,3])
print(v)    # Prints "[1 2 3]"
print(v.T)  # Prints "[1 2 3]"

5、不同matlab對于矩陣預算要求大小一致

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的優缺點

如果要問我選哪個,我會建議兩個都選。很多人喜歡拿python和matlab對比,然后得出哪個更好的結論。其實吧,夠用就好。

如果是學生,或者研究人員,比如研究信號處理,那么用matlab比較好,有大量現成工具箱和前人的成果可以借鑒。如果是產品化項目,那么python比較好,可以做web后臺,可以打包成應用程序,效率相對matlab也要高那么一點點。如果是信號、數據方面的工程人員,建議還是兩個都掌握吧,也不復雜,都是腳本式的語言,比C++什么的易學多了。

下面從兩者各自的應用做個對比。

1、python的優勢

Python相對于Matlab最大的優勢:免費。國內可能不是很在乎這個,但在國外是個很關鍵的問題。

Python次大的優勢:開源。你可以大量更改科學計算的算法細節。

可移植性,Matlab必然不如Python。但你主要做Research,這方面需求應當不高。

第三方生態,Matlab不如Python。比如3D的繪圖工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。長期來看,Python的科學計算生態會比Matlab好。

語言更加優美。另外如果有一定的OOP需求,構建較大一點的科學計算系統,直接用Python比用Matlab混合的方案肯定要簡潔不少。

python作為一種通用編程語言,可以做做Web,搞個爬蟲,編個腳本,寫個小工具用途很廣泛。

2、matlab的優勢

學術界大量使用matlab做仿真,做研究的話容易找到代碼參考;

語法相對python更靈活一些,matlab寫程序基本不用套路,所謂老夫擼matlab就一個字,干;

有simulink。有人說simulink沒什么用,其實還是挺有用的,比如通信建模,另外simulink可以生產DSP或者FPGA代碼,有的時候很有用。

3、兩者的區別

python是一種通用語言,而matlab更像是一個平臺。

4、怎樣選擇

如果做研究,可以matlab為主;如果做產品,可以python為主。當然也有matlab做成產品的,打包成exe什么的都不是事。

“Python numpy和matlab的差異是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

志丹县| 延寿县| 石泉县| 潢川县| 固始县| 东港市| 虎林市| 临湘市| 新乡县| 桂阳县| 金华市| 嵊州市| 区。| 江陵县| 泰顺县| 忻州市| 吐鲁番市| 潜江市| 区。| 白城市| 杭锦旗| 名山县| 建宁县| 牟定县| 闸北区| 湘潭县| 伊宁县| 平谷区| 石首市| 永兴县| 江永县| 安岳县| 博白县| 新田县| 台州市| 永定县| 同江市| 元氏县| 新河县| 云南省| 汕头市|