1

我有一个包含 numpy int32 值的列表列表。我想将所有这些 int32 值转换为常规 int。原因是因为作为我流程的一部分,这些值稍后会被输入到非最大抑制函数中,该函数不接受 int32。

下面是我的数据的结构(以常规 int 形式)。我不知道如何为 int32 值制作测试集......否则我可能会解决这个问题。

整数列表列表

test_list = [[1,2,3,4],[5,6,7,8]]

编辑:一些截图可以帮助理解我的数据是什么样的。

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

2

非迭代转换的示例。

使用以下内容将结构保持为ndarray

a.astype(int)

>>> array([[1, 2, 3, 4],
           [5, 6, 7, 8]])

或者更简单地说,使用它来将 转换ndarray为 a list

a.tolist()

>>> [[1, 2, 3, 4], [5, 6, 7, 8]]

背景:

你提到你的清单是int32有价值的。因此,“列表”很可能实际上是一个numpy.ndarray. 这是一个例子:

a = np.array([[1,2,3,4],[5,6,7,8]], dtype=np.int32)

>>> array([[1, 2, 3, 4],
           [5, 6, 7, 8]], dtype=int32)

如果是这种情况,那么将 转换ndarray为“正常”listint就像上面显示的两个示例一样简单。

于 2020-09-24T19:07:28.910 回答
0

这应该有效:

In [167]: [[int(x) for x in sublist] for sublist in test_list]
Out[167]: [[1, 2, 3, 4], [5, 6, 7, 8]]
于 2020-09-24T18:51:07.630 回答