在python中将列附加到空numpy数组

时间:2015-07-28 04:53:18

标签: python arrays numpy

我必须用数据列填充文本文件,以及时显示某些变量的变化。对于每个变量,我想创建一个列数组,然后将它们连接在一个矩阵中,以便写入文本文件。我这样做:

import numpy as np
result = np.empty((0,1))    
for data in [var1 var2 var3 var4]
  results_tmp = np.empty((0,1))
  for i in len(data):
      results_tmp = np.append(results_tmp, [data[i]], axis=0)

如何使用result列填充results_tmp数组?

1 个答案:

答案 0 :(得分:0)

你建议这样做的方式很慢。最好用列表构造数据,然后创建一个数组:

result = []
for data in [var1, var2, var3, var4]:
    results_tmp = []
    for val in data:
        results_tmp.append(val)
    result.append(results_tmp)
result_array = np.array(result).T

另一种方法是,如果你能得到var的长度,那就是:

result = np.empty((len(var1), 4))

for id1, data in enumerate([var1, var2, var3, var4]):
    for id0, val in enumerate(data):
        result[id0, id1] = val

但这两种方法都使用for循环,应尽可能避免使用。因此,更好的方法是在一个操作中构造数组:

result = np.array([var1, var2, var3, var4]).T

这会给你你想要的吗?请注意使用.T,它会对数组进行转置,以便results_tmp位于列中。