改变从文本文件读取的numpy数组形状
我正在使用Python,加载一个文本文件,内容大概是这样的:
3 4
5 6
7 8
9 10
我用np.loadtxt('filename.txt')这个命令,得到的结果是一个数组,像这样:
([[3, 4]
[5, 6]
[7, 8]
[9, 10]])
不过,我想要的数组应该是这样的:
([3, 5, 7, 9], [4, 6, 8, 10])
有没有人知道除了手动复制数组并重新格式化之外,我还能做些什么?我尝试过几种方法,但都不奏效。
3 个回答
0
最好的方法是使用 transpose
这个方法,具体用法如下:
import numpy as np
load_textdata = np.loadtxt('filename.txt')
data = np.transpose(load_textdata)
0
你可以使用 np.loadtxt
的 unpack
选项:
np.loadtxt('filename.txt', unpack=True)
这样你就可以直接得到转置后的数组了。(http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html)
另一种方法是使用 transpose
函数来处理你的 numpy 数组:
your_array = np.loadtxt('filename.txt')
print(your_array)
([[3, 4]
[5, 6]
[7, 8]
[9, 10]])
new_array = your_array.T
print(new_array)
([3, 5, 7, 9], [4, 6, 8, 10])
transpose
方法会返回一个转置后的数组,而不是在原地进行转置。
1
根据我的评论:
>>> x
array([[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10]])
>>> numpy.transpose(x)
array([[ 3, 5, 7, 9],
[ 4, 6, 8, 10]])