我在使用Matlab多年后处理学习python。我遇到了麻烦,我在谷歌搜索中找不到多少帮助。
我想知道处理基本数组的最佳方法。我应该使用numpy,scipy,array,numarray还是其他什么东西?
例如,采用以下Matlab代码。
a = rand(10,1)
b = rand(10,1)
c = b > 0.5
d = a .* b
e = a + b
f = mean(a)
g = sum(b)
将此转换为python的最佳方法是什么?
答案 0 :(得分:3)
如果你要用数组来进行数学计算,你肯定应该选择NumPy; MATLAB用户甚至有migration guide。
NumPy做了很多与MATLAB相同的阵列广播,因此使用起来应该很自然。您的代码可以写成:
import numpy as np
a = np.random.rand(10,1)
b = np.random.rand(10,1)
c = b > 0.5
d = a * b # Note that * in NumPy is always elementwise (use .dot for matrix multiplication)
e = a + b
f = a.mean() # Can also use np.mean(a)
g = b.sum() # Can also use np.sum(b)