将多列数组保存到 csv

Save array with multiple columns to csv

如果我这样写,我会得到我想要的 csv 文件

a = asarray([ [1,2,3], [4,5,6], [7,8,9] ])
savetxt("foo.csv", a, delimiter=",")

但问题是为了获取值,我有类似的东西:

for j in range(3):
    for i in range(3):
        e = get_val(i)  # so I get 1,2,3; next loop 4,5,6 and third 7,8,9

所以我尝试使用 append 以我需要的格式制作数组,但它 好像我明白了

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

那么有人知道如何使用所需格式的数组吗?

注意:我正在使用的真实应用程序中的输入是openpose

中的骨架点

让我们倒过来试试。假设我们有这个线性列表 a,我们可以 将其放入 numpy 数组中,如下所示。这将允许您使用您的功能 get_val 相反。

import numpy as np

a = [1,2,3,4,5,6,7,8,9]
b = []
for j in range(3):
    b2 = []
    for i in range(3):
        e =  a[3*j+i] # get_val(i)
        b2.append(e)
    b.append(b2)
print(np.asarray(b))
# [[1 2 3]
# [4 5 6]
# [7 8 9]]

我想你需要嵌套两个循环,像这样:

a = []
n = 1
for j in range(1,4):
    b = []
    for i in range(1,4):
        b.append(n)
        n += 1
    a.append(b)
print(a)

您的方向正确,但需要初始化两个列表。内部列表,我们称它为 b,需要在每个外部循环开始时重新初始化,否则它会不断增长到 6 项,然后是 9 项。