Python可以进行向量化运算吗?

2023-12-29

我想用Python实现以下Matlab代码:

x=1:100;
y=20*log10(x);

我尝试使用 Numpy 来执行此操作:

y = numpy.zeros(x.shape)
for i in range(len(x)):
    y[i] = 20*math.log10(x[i])

但这使用了 for 循环;无论如何,有没有像Matlab中那样进行矢量化运算?我知道对于一些简单的数学,例如除法和乘法,这是可能的。但是其他更复杂的运算(例如这里的对数)又如何呢?


y = numpy.log10(numpy.arange(1, 101)) * 20

In [30]: numpy.arange(1, 10)
Out[30]: array([1, 2, 3, 4, 5, 6, 7, 8, 9])

In [31]: numpy.log10(numpy.arange(1, 10))
Out[31]:
array([ 0.        ,  0.30103   ,  0.47712125,  0.60205999,  0.69897   ,
        0.77815125,  0.84509804,  0.90308999,  0.95424251])

In [32]: numpy.log10(numpy.arange(1, 10)) * 20
Out[32]:
array([  0.        ,   6.02059991,   9.54242509,  12.04119983,
        13.97940009,  15.56302501,  16.9019608 ,  18.06179974,  19.08485019])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python可以进行向量化运算吗? 的相关文章

随机推荐