我创建了一个名为“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/