2013-04-03 308 views
1

我想将给定的1x1x3矩阵乘以一个常数值。矩阵乘以常数

a= [[[1, 2, 3]]] 

预期的结果是

a*3 = [[[3,6,9]]] 

请帮我解决这个

+1

如果这是你需要做的事情,那么花时间学习NumPy可能是值得的。 – NPE

回答

4

使用NumPy

In [1]: import numpy as np 

In [2]: a = np.array([[[1, 2, 3]]]) 

In [3]: a 
Out[3]: array([[[1, 2, 3]]]) 

In [4]: a*3 
Out[4]: array([[[3, 6, 9]]]) 
1

尝试:

a= [[[1, 2, 3]]] 
for i in range(len(a[0][0])): 
    a[0][0][i] *= 3 

print a  
1

下面是使用列表理解的一种方法:一种方法使用纯Python做

>>> a = [[[1, 2, 3]]] 
>>> b = [[x*3 for x in a[0][0]]] 
>>> b 
[[3, 6, 9]] 
1

这里是:

a3 = [[[el * 3 for el in col] for col in row] for row in a] 

这适用于任何形状,而不只是1x1x3的3D矩阵。

但是,如果这是您需要定期做的事情,我会鼓励您学习NumPy。然后你就可以写出:

a3 = a * 3