如何在Python中重塑文本文件,以便行/列交换位置?

时间:2016-02-09 01:53:43

标签: python numpy reshape

编辑 - 已解决

我有一个包含100行数据的文本文件,每行包含500列值。我需要简单地交换它们,以便我的文件包含500行数据和100列值。

第一列[:,0]中的所有内容都是第1行,第二列[:,1]中的所有内容都是第2行 - 依此类推,直到文件末尾。

我搜索了解决方案并偶然发现了np.reshape,但是对于我的生活,我无法找到在现有文本文件中使用的示例。我应该提一下,我也没有太熟练的Python来自己解决这个问题。

或者,这里是我用来创建这个文本文件的代码 - 如果只是在这里修改一些东西会更简单,这将首先重塑它,然后我开放寻求建议。

diffs = []
for number in range (1,101):
    filea = pl.loadtxt('file' + str(number) + 'a')
    fileb = pl.loadtxt('file' + str(number) + 'b')
    diff = fileb[:,1] - filea[:,1]
    diffs.append(diff)
    np.savetxt('diffs.txt', (diffs))

在这里,我有100个a个文件和100个b个文件。它们每个包含500行和2列。我发现每个第二列中的值之间的差异,并希望将它们全部保存在一个维护500行的文件中,而是通过100 1b-1a 2b-2a等的差异来实现到100b-100a

希望我以一种可以理解的方式解释自己。提前感谢您的帮助。

解决方案:

reshape = np.loadtxt('diffs.txt')
diffs2 = np.transpose(reshape)
np.savetxt('diffs2.txt', (diffs2))

1 个答案:

答案 0 :(得分:1)

np.transpose是在numpy中切换行和列的常用工具。它也可以处理更大的尺寸。当数组是1d时,它就不会改变任何东西。