我创建了一个名为“column.txt”的文本文件,其中包含以下数据:






然后我编写了下面的代码,将数据转换为单行文本文件。

import numpy as np
x=np.loadtxt('column.txt')
z=x.T
y=x.transpose()
np.savetxt('row.txt',y, fmt='%i')

我尝试了两种不同的方法-使用矩阵乘法(代码中的注释行)和使用转置命令。问题是输出和输入完全一样!
之后,我在输入文件中添加了另一列,运行了代码,令人惊讶的是这次的输出是完全正确的(输出包含两行!)
所以我的问题是:
有没有必要将一个列文件转换成一个行文件?如果是的话,请你描述一下怎么做好吗?

最佳答案

您可以使用numpy.reshape来转置数据并更改数组的形状,如下所示:

>>> import numpy as np
>>> arr=np.loadtxt('column.txt')
>>> arr
array([ 1.,  2.,  3.,  4.,  9.,  8.])
>>> arr.shape
(6,)
>>> arr=arr.reshape(6,1)
>>> arr
array([[ 1.],
       [ 2.],
       [ 3.],
       [ 4.],
       [ 9.],
       [ 8.]])

或者,您可以将数组维数的数字作为numpy.loadtxt函数的输入
>>> np.loadtxt('column.txt', ndmin=2)
array([[ 1.],
       [ 2.],
       [ 3.],
       [ 4.],
       [ 9.],
       [ 8.]])

但是如果你想把一个列转换成一个行并把它写进一个文件中,你需要做如下的事情
>>> parr=arr.reshape(1,len(arr))
np.savetxt('column.txt',parr, fmt='%i')

关于python - 关于如何在python中转置单列数据的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32521982/

10-09 17:18
查看更多