1

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

4

1 回答 1

3

如果您要使用数字数组进行数学运算,那么您绝对应该使用 NumPy;甚至还有针对 MATLAB 用户的迁移指南。

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)
于 2012-09-21T00:36:14.120 回答