将浮点数组转换为整数数组?

时间:2014-03-06 14:41:42

标签: python arrays numpy dictionary integer

我有一个名为start的数组。我试图将它用作称为G的字典中的密钥。

以下是数组的示例:

array([(1497315, 11965605), (1502535, 11967915), (1501785, 11968665),
       (1520325, 11972295), (1522905, 11972805), (1504545, 11972865),
       (1500465, 11973075), (1489695, 11975205), (1485855, 11978775),
       (1499535, 11978955), (1508205, 11981745), (1521315, 11982615),
       (1501215, 11983335), (1508595, 11985225), (1503045, 11986635),
       (1522425, 11987745), (1512705, 11988255), (1519035, 11989185)...

len(开始)是50

我想将start转换为整数类型,因此我可以将它用作词典中的键。

我已经尝试type (start) is int确认它不是整数。 Start是从表示x和y坐标的两列整数创建的。

与上一个问题相关:

Dictionary not recognizing floating point keys

1 个答案:

答案 0 :(得分:1)

我认为这是参考your previous question

array = [(1497315.0, 11965605.0),(1502535.0, 11967915.0),(1501785.0, 11968665.0)]
print map(tuple, map(lambda x: map(int, x), array))
# [(1497315, 11965605), (1502535, 11967915), (1501785, 11968665)]

列表理解

print [[int(item) for item in items] for items in array]

如果您想将词典的键转换为int,请使用dictionary理解

d = {(15035.0, 119915.0): 'b', (15085.0, 119665.0): 'c', (14975.0, 11965.0): 'a'}
print {(int(k[0]), int(k[1])):v for k, v in d.iteritems()}
# {(15085, 119665): 'c', (14975, 11965): 'a', (15035, 119915): 'b'}