编辑 - 已解决
我有一个包含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))
答案 0 :(得分:1)
np.transpose
是在numpy
中切换行和列的常用工具。它也可以处理更大的尺寸。当数组是1d时,它就不会改变任何东西。