在Python中处理基本数组的首选方法是什么?

时间:2012-09-21 00:26:06

标签: python matlab

我在使用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的最佳方法是什么?

1 个答案:

答案 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)