2013-04-03 306 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