文章源自《<a target="_blank">NumPy for MATLAB user</a>》舶吗。**
本文目錄
[TOC]
1. 算術(shù)運(yùn)算
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
a.^b | np.power(a,b) a**b |
a的b次方 | |
rem(a,b) | a % b np.remainder(a,b) np.fmod(a,b) |
取余鸠姨,模運(yùn)算 | |
factorial(a) | np.math.factorial(a) math.factorial(a) |
a的階乘 | math是未經(jīng)優(yōu)化的Python標(biāo)準(zhǔn)庫(kù),而np.math是經(jīng)過優(yōu)化的奢米,速度相對(duì)更快抓韩。 |
2. 關(guān)系運(yùn)算
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
a ~= b | a != b | 判斷a和b是否不等 |
3. 邏輯運(yùn)算
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
a && b | a and b | 單一元素與運(yùn)算 | 只適應(yīng)一個(gè)元素 |
a || b | a or b | 單一元素或運(yùn)算 | 只適應(yīng)一個(gè)元素 |
a & b and(a,b) |
np.logical_and(a,b) a and b |
多元素與運(yùn)算 | |
a | b or(a,b) |
np.logical_or(a,b) a or b |
多元素或運(yùn)算 | |
xor(a,b) | np.logical_xor(a,b) | 異或運(yùn)算 | |
~a not(a) |
np.logical_not(a) not a !a |
非運(yùn)算 | <font color='red'>適用對(duì)象待更新</font> |
any(a) | any(a) | 存在非零元素就返回true | len(np.nonzero(a)[0])>0 |
all(a) | all(a) | 所有元素不為零才返回true | len(np.nonzero(a)[0])>0 |
4. 根運(yùn)算與對(duì)數(shù)運(yùn)算
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
sqrt(a) | math.sqrt(a) np.sqrt(a) |
平方根 | MATLAB中一個(gè)數(shù)蝇裤,默認(rèn)是1*1的矩陣亦鳞。所以MATLAB中對(duì)單元素和多元素處理是通用的。而Python中,數(shù)和數(shù)組在定義上是進(jìn)行了區(qū)分的杂抽。此處自帶的math標(biāo)準(zhǔn)庫(kù)僅適用處理單一元素,NumPy中方法既適用于處理單元素(數(shù))寂呛,也適用于處理多元素(數(shù)組)坯汤。 |
log(a) | math.log(a) np.log(a) |
自然對(duì)數(shù),底為e | 同上 |
log10(a) | math.log10(a) np.log10(a) |
底數(shù)為10 | 同上 |
log2(a) | math.log(a,2) np.log(a,2) |
底數(shù)為2 | 同上 |
exp(a) | math.exp(a) np.exp(a) |
常數(shù)e的a次方 | 同上 |
5. 去尾運(yùn)算
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
round(a) | np.around(a) round(a) |
四舍五入 | 見例1 |
ceil(a) | math.ceil(a) np.ceil(a) |
向上(更大的數(shù))取整善延,注意不是收尾法少态,因?yàn)橐紤]負(fù)數(shù) | MATLAB和Python-math得到的是整數(shù),Python得到的是處理了尾數(shù)的小數(shù) |
floor(a) | math.floor(a) np.floor(a) |
向下(更小的數(shù))取整易遣,注意不是去尾法彼妻,因?yàn)橐紤]負(fù)數(shù) | 同上 |
fix(a) | np.fix(a) | 向0取整 | 返回一個(gè)array |
#例1-Python
>>> a = 9.8
>>> round(a)
10
>>> np.around(a)
10.0
%例1-MATLAB
>> a = 9.8
>> round(a)
ans =
10
6. 數(shù)學(xué)常量
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
pi | math.pi np.pi |
pi = 3.141592653589793 | |
exp(1) | math.e math.exp(1) np.e np.exp(1) |
e=2.718281828459045 e=2.718281828459045 e=2.718281828459045 e=2.7182818284590451 |
7. 向量
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
a=[2 3 4 5] | a=np.array([2,3,4,5]) | 行向量 | |
a' | a.T a.reshape(-1,1) |
向量的轉(zhuǎn)置 |
8. 序列
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
1:10 | list(range(1,11)) np.arange(1,11) |
MATLAB和Python1:[1,2,3,4,5,7,8,9,10] Python2:array([1,2,3,4,5,6,7,8,9,10]) |
|
1:3:10 | np.arange(1,11,3) | 1,4,7,10 | |
10:-1:1 | np.arange(10,0,-1) | 10,9,8,7,6,5,4,3,2,1 | |
10:-3:1 | np.arange(10,0,-3) | 10,7,4,1 | |
linspace(1,10,7) | np.linspace(1,10,7) | matlab: [1.0, 2.5, 4.0, 5.5, 7.0, 8.5, 10.0] Python: array([1.0, 2.5, 4.0, 5.5, 7.0, 8.5, 10.0]) |
參數(shù)依次為:起點(diǎn),終點(diǎn)豆茫,點(diǎn)的個(gè)數(shù)侨歉。此函數(shù)是將起點(diǎn)到終點(diǎn)之間的距離均勻分段。 |
a(:)=3 | a.fill(3) a[:]=3 |
將所有元素的值都賦為3 |
9. 拼接矩陣
MATLAB | Python | 描述 | 備注 |
---|---|---|---|
a=[1,2,3; 4,5,6] | a=np.array([[1,2,3],[4,5,6]]) | ||
[a,a] | np.concatenate((a,a), axis=1) | 見例2 | |
[a;a] | np.concatenate((a,a), axis=0) | 見例2 |
<font color="red" face="Times" size="3">例2-MATLAB</font>
>> a=[1,2,3; 4,5,6]
a =
1 2 3
4 5 6
>> [a, a]
ans =
1 2 3 1 2 3
4 5 6 4 5 6
>> [a;a]
ans =
1 2 3
4 5 6
1 2 3
4 5 6
<font color="red" face="Times" size="3">例2-Python</font>
>>> a=np.array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> np.concatenate((a,a))
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
>>> np.concatenate((a,a), axis=0)
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
>>> np.concatenate((a,a), axis=1)
array([[1, 2, 3, 1, 2, 3],
[4, 5, 6, 4, 5, 6]])
附
該文章于2017年5月25日于CSDN上首次發(fā)表揩魂,2017年12月22日搬家至此幽邓!