Numpy savetxt循环

时间:2013-05-21 10:17:48

标签: for-loop numpy save arrays

使用Numpy,我将使用以下方法在6个子阵列中拆分维度(557124,2)dtype = "S10"的数组:

sub_arr = np.split(arr, 6)

现在我想在for上使用savetxt循环并将6个子数组保存为6个.txt文件。

我试过了:

for i in sub_array:
    np.savetxt(("Subarray", i, ".txt"), sub_array[i], fmt='%s')

有两个问题:

  1. in sub_array是不对的。我应该使用range(5),但我想让它适应任意数量的子数组。

  2. 当我做("Subarray", i, ".txt")时,我以为我可以使用R中的某种“粘贴”。 Numpy有什么相似的东西吗?

  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

从我的理解

sub_arr = np.split(arr, 6)

返回6个numpy数组的列表。然后你可以使用enumerate来获取每个数组及其索引

fname_template = "Subarray.{i}.txt"
for i, sarr in enumerate(sub_arr):
    np.savetxt(fname_template.format(i=i), sarr, fmt='%s')

要创建文件名,我使用了new string formatting。否则,您可以将+的字符串连接为"Subarray."+str(i)+".txt",但您必须确保连接的所有元素都是字符串。