我目前在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)
但我仍有同样的问题。
有谁知道如何绕过这个问题。
答案 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
轻松解决该问题。