我想删除数组dict中的项目,但找不到有关我的问题的信息。
import numpy as np
from scipy import *
item = [3]
json ={'rois': array([[150, 340, 323, 437],
[230, 315, 361, 450],
[ 71, 136, 111, 152],
[ 68, 75, 101, 127],
[106, 264, 129, 273],
[ 70, 137, 109, 182]]), 'class_ids': array([ 1, 2, 3, 3, 13, 3]), 'scores': array([0.999424 , 0.9991478 , 0.98883635, 0.9819324 , 0.85232574,
0.7136188 ], dtype=float32), 'masks': array([[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
...,
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]]])}
我想删除错误的班级ID。我不知道如何伪造新的json,我在numpy和scipy文档中进行了搜索,但是我没有找到解决方案。我想要这个结果:
json ={'rois': array([[[ 71, 136, 111, 152],
[ 68, 75, 101, 127],
[ 70, 137, 109, 182]]), 'class_ids': array([ 3, 3, 3]), 'scores': array([0.98883635, 0.9819324 ,`
0.7136188 ], dtype=float32),, 'masks': array([[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
[[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
...,
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]],
`
我尝试使用np.delete和del json [class_ids] [项目],但我有错误
ValueError: cannot delete array elements
例如,您可以实现所需的目标
import numpy as np
dictNumpy = {'rois': np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]),
'id': np.array([1, 2, 3, 4, 3]),
'scores': np.array([1, 2, 3, 4, 5])}
ind2rm = np.asarray(dictNumpy['id'] != 3).nonzero()[0]
for key, value in dictNumpy.items():
dictNumpy[key] = np.delete(value, ind2rm, axis=0)
print(dictNumpy)
此打印
{'rois': array([[ 5, 6],
[ 9, 10]]), 'id': array([3, 3]), 'scores': array([3, 5])}