如何将列表中的各个元素与数字相乘?

bha*_*ath 44 python numpy multiplication

S = [22, 33, 45.6, 21.6, 51.8]
P = 2.45
Run Code Online (Sandbox Code Playgroud)

这里S是一个数组

我将如何乘以此值并得到值?

SP = [53.9, 80.85, 111.72, 52.92, 126.91]
Run Code Online (Sandbox Code Playgroud)

Jos*_*del 68

在numpy中它很简单

import numpy as np
P=2.45
S=[22, 33, 45.6, 21.6, 51.8]
SP = P*np.array(S)
Run Code Online (Sandbox Code Playgroud)

我建议看一下numpy教程,了解numpy数组的全部功能:

http://www.scipy.org/Tentative_NumPy_Tutorial


KL-*_*L-7 38

您可以使用内置map功能:

result = map(lambda x: x * P, S)
Run Code Online (Sandbox Code Playgroud)

列出更加pythonic的理解:

result = [x * P for x in S]
Run Code Online (Sandbox Code Playgroud)

  • 正如注释一样,数组上的操作(如标量乘法)在numpy中进行了高度优化,并且明显快于列表推导.通常建议不要处理像python列表这样的numpy数组. (7认同)

DKK*_*DKK 19

如果你使用 numpy.multiply

S = [22, 33, 45.6, 21.6, 51.8]
P = 2.45
multiply(S, P)
Run Code Online (Sandbox Code Playgroud)

它为您提供了结果

array([53.9 , 80.85, 111.72, 52.92, 126.91])
Run Code Online (Sandbox Code Playgroud)