2015-11-23 63 views
-2

我想乘以一定數量的數組數組。就是說,用相同的常數乘以每個數組的每個值。我試圖做這種方式:如何乘以'float'類型的非整型序列?

>>> a = [[1,1],[1,1]] 
>>> b = [[1,1],[1,1]] 
>>> c = [[1,1],[1,1]] 
>>> 0.1 * [a,b,c] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can't multiply sequence by non-int of type 'float' 

是否有一個更聰明的「Numpier」的方式做到這一點,而不是爲循環創建?

+1

你想在這裏有什麼結果呢?如何將一個列表乘以十分之一? –

+0

你是對的,我不得不更好地解釋 - 我試着用相同的常量乘以數組數組中的每個值,這樣每個單元格在這個例子中將得到0.1的值。 – Ohm

+1

整數數組乘法在Python和Numpy中沒有相同的語義。你只需要在Numpy數組中轉換你所有的數組。 – Emilien

回答

4

將python列表乘以一個整數將爲您提供列表的倍數。

>>> a = [1] 
>>> a * 3 
[1,1,1] 

的你正在嘗試做的是實際使用numpy的該Numpier方式。然後你就可以乘值的陣列內任何你想要的:

>>> import numpy as np 
>>> a = [[1,1],[1,1]] 
>>> a = np.array(a) 
>>> a * 0.1 
array([[ 0.1, 0.1], 
    [ 0.1, 0.1]]) 
相關問題