如何将numpy数组存储到csv文件

时间:2020-10-16 14:53:14

标签: python python-3.x numpy export-to-csv

这是我的代码段:

from detectron2.utils.visualizer import ColorMode
from detectron2.structures import pairwise_iou
import random
import numpy
from numpy import savetxt
dataset_dicts = DatasetCatalog.get('/content/scaphoid/test')
for d in random.sample(dataset_dicts,20):    
    im = cv2.imread(d["file_name"])
    outputs = predictor(im)
    v = Visualizer(im[:, :, ::-1], metadata=microcontroller_metadata, scale=0.8)
    v = v.draw_instance_predictions(outputs["instances"].to("cpu"))
    bb2 =(outputs["instances"].get_fields()["pred_boxes"].tensor.to("cpu").numpy())
    #numpy.savetxt("/content/output/bb2.csv",bb2, delimiter=',', header="xmin,ymin,xmax,ymax", comments="")

我想将bb2 np数组存储到一个csv文件中。 我尝试使用带注释的语句,但这仅保存了bb2的最后一个值,而不是所有值 我该怎么做? 谁能帮忙

1 个答案:

答案 0 :(得分:1)

您在for循环中编写了numpy.savetxt语句,但没有追加数组,这就是为什么它会用最新值不断覆盖数组和csv文件的原因。

您可以创建一个空数组:

final = np.array([])

然后在bb2=(outputs["instances"].get_fields(["pred_boxes"].tensor.to("cpu").numpy())之后 在for循环中编写以下代码:

final = np.append(final, bb2)

最后在for循环之外,编写numpy.savetxt语句:

numpy.savetxt("/content/output/bb2.csv",final, delimiter=',', header="xmin,ymin,xmax,ymax", comments="")

希望这可以解决您的问题!