将 Int32 值列表转换为 int 值列表

Converting list of list of Int32 values to list of list of int values

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

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

整数列表列表

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

编辑:一些屏幕截图有助于了解我的数据。

这应该有效:

In [167]: [[int(x) for x in sublist] for sublist in test_list]
Out[167]: [[1, 2, 3, 4], [5, 6, 7, 8]]

non-iterative 转换示例。

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

a.astype(int)

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

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

a.tolist()

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

背景:

您提到您的列表包含 int32 个值。因此,'list' 很可能实际上是 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 转换为 int 值的 'normal' list 就像上面显示的两个示例一样简单。