我有一个包含 numpy int32 值的列表列表。我想将所有这些 int32 值转换为常规 int。原因是因为作为我流程的一部分,这些值稍后会被输入到非最大抑制函数中,该函数不接受 int32。
下面是我的数据的结构(以常规 int 形式)。我不知道如何为 int32 值制作测试集......否则我可能会解决这个问题。
整数列表列表
test_list = [[1,2,3,4],[5,6,7,8]]
编辑:一些截图可以帮助理解我的数据是什么样的。
我有一个包含 numpy int32 值的列表列表。我想将所有这些 int32 值转换为常规 int。原因是因为作为我流程的一部分,这些值稍后会被输入到非最大抑制函数中,该函数不接受 int32。
下面是我的数据的结构(以常规 int 形式)。我不知道如何为 int32 值制作测试集......否则我可能会解决这个问题。
整数列表列表
test_list = [[1,2,3,4],[5,6,7,8]]
编辑:一些截图可以帮助理解我的数据是什么样的。
非迭代转换的示例。
使用以下内容将结构保持为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
为“正常”list
值int
就像上面显示的两个示例一样简单。
这应该有效:
In [167]: [[int(x) for x in sublist] for sublist in test_list]
Out[167]: [[1, 2, 3, 4], [5, 6, 7, 8]]