首页 > 解决方案 > 将 numpy 数组附加到包含现有 numpy 数组的 csv 文件

问题描述

我们正在尝试将 5xn numpy 数组写入 csv 文件,并在每次迭代时将相同大小的数组附加到文件中:

def updatePosition(self):
    self.nodes[:, [0,1]] += self.nodes[:, [3,4]]
    self.nodes[self.nodes[:, 0] < 0, 3] *= (-1)
    self.nodes[self.nodes[:, 0] > self.screen.get_width(), 3] *= (-1)
    self.nodes[self.nodes[:, 1] < 0, 4] *= (-1)
    self.nodes[self.nodes[:, 1] > self.screen.get_height(), 4] *= (-1)
    np.savetxt("simlog.csv", self.nodes, delimiter=",")

但这只会覆盖现有内容。从我读过的其他帖子看来,我们似乎需要做这样的事情:

 def updatePosition(self):
    self.nodes[:, [0,1]] += self.nodes[:, [3,4]]
    self.nodes[self.nodes[:, 0] < 0, 3] *= (-1)
    self.nodes[self.nodes[:, 0] > self.screen.get_width(), 3] *= (-1)
    self.nodes[self.nodes[:, 1] < 0, 4] *= (-1)
    self.nodes[self.nodes[:, 1] > self.screen.get_height(), 4] *= (-1)
    with open("simlog.csv", "a"):
        np.savetxt("simlog.csv", self.nodes, delimiter=",")

似乎“a”标签应该使其附加而不是覆盖。但是,这会产生与上述相同的结果。我冒险通过谷歌的第 2 页寻找答案,但无济于事。任何提示将不胜感激。

编辑:5 列依次包含:x 位置、y 位置、状态、x 速度、y 速度。不知道它是否相关,但无论哪种方式都是上下文。

标签: arraysnumpycsvappendwrite

解决方案


推荐阅读