np.around用于包含none和整数值的数组



我有一个数组:

MDP= [[0.705,.655,0.614,0.388],[0.762,None,0.660,-1],[0.812,.868,0.918,+1]]

如何在上面的数组上应用np.around而不会得到None和-1,+1值的错误?

TIA-

确保使用numpy数组,而不是列表列表:

np.around(np.array(MDP).astype(float))
#array([[ 1.,  1.,  1.,  0.],
#       [ 1., nan,  1., -1.],
#       [ 1.,  1.,  1.,  1.]])

如果需要,可以使用.tolist()将结果转换回嵌套列表。

我的解决方案是在数组内的值为NoneType时进行异常处理。这可以通过lambda函数非常优雅地完成。

如果你的阵列是1D:

flex_round = lambda array: [None if x == None else np.round(x) for x in array]

如果你的阵列是2D:

flex_round = lambda array: [[None if x == None else np.round(x) for x in y] for y in array]

不要忘记将decimals参数添加到np.roud调用中,以精确计算逗号后应保留的位数。

最新更新