在Python中乘以1D数组

时间:2012-09-01 14:52:04

标签: python arrays dimensional

例如,如果我在Python中有一维数组:

a = (10,20,30,40,50)

如何将此乘以一个整数(例如2)来生成:

b = (20,40,60,80,100)

我试过了:

b = a*2 

但它似乎没有做任何事情。

3 个答案:

答案 0 :(得分:3)

元组是不可变的;如果您想要更改实际数组的内容,请使用列表([]而不是())。

要创建一个新元素,其元素是元组的两倍,循环元组并乘以每个元素:

b = []
for num in a:
    b.append(2*num)

这可以缩短为

b = [2*num for num in a]

使用list comprehensions

请注意,如果您确实希望最终结果仍然是元组,则可以使用

b = tuple([2*num for num in a])

我认为,如果不使用第三方库,最接近原始语法的是

>>> map(lambda n: n*2, [1,2,3])
[2, 4, 6]

这基本上只是一种奇特的说法,“接受函数f(n) = 2n并将if应用于列表[1,2,3]”。

答案 1 :(得分:3)

使用以下内容:

>>> b = [2 * i for i in a]
>>> b
[20, 40, 60, 80, 100]

a * 2将复制您的设置:

>>> a = (10,20,30,40,50)
>>> a * 2
(10, 20, 30, 40, 50, 10, 20, 30, 40, 50)

答案 2 :(得分:3)

对于更自然的数字处理方式,您可能需要考虑numpy。 使用numpy,你的代码就像这样:

import numpy as np
a = np.array([10,20,30,40,50])
b = a*2