2015-11-23 36 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]]) 
相关问题