只能使用int函数将length-1数组转换为Python标量

时间:2015-06-17 12:28:39

标签: python

我目前在python中有一个数组,这是一个字典的元素,在python控制台中,看起来像这样:

TUMEC['spans'][0]
array([0. , 0.25, 0.5, 0.75, 1.])

我想将整个数组传递给函数,但这必须通过一些简单的数学运算,如:

int(TUMEC['spans'][0]*100)

但我收到错误消息说: 只有length-1数组才能转换为Python标量。

所以,我尝试import numpy并输入:

int(TUMEC['spans'][0]*100)

但我仍有同样的问题。

有谁知道如何绕过这个问题。

2 个答案:

答案 0 :(得分:1)

您可以尝试转换为列表然后理解:

[int(a*100) for a in list(TUMEC['spans'][0])]

答案 1 :(得分:1)

我认为最好的方法是使用map,相信速度更快:

print map(lambda x: int(x*100), TUMEC['spans'][0])

但是如果TUMEC['spans'][0]已经是numpy.array,那么以下内容应该是首选方式,因为它更具可读性,更简单,更快(任何人都可以确认快速部分吗?)。< / p>

print map(int, TUMEC['spans'][0]*100)

当然,在这两种情况下,结果都是一个列表,但您可以使用np.array轻松解决该问题。