2014-07-23 87 views
0

閱讀我在Python工作,我加載一個文本文件,它看起來像這樣:改變numpy的陣列的形狀從文本文件

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]) 

任何人都知道我能做些什麼besid複製數組並手動重新格式化?我嘗試了一些東西,但他們不工作。

+0

我認爲你正在尋找numpy.transpose() – Ben

+0

沒錯!謝謝,這個作品。 – Hannah

回答

1

每我的評論:

>>> x 
array([[ 3, 4], 
     [ 5, 6], 
     [ 7, 8], 
     [ 9, 10]]) 
>>> numpy.transpose(x) 
array([[ 3, 5, 7, 9], 
     [ 4, 6, 8, 10]]) 
1

您可以使用np.loadtxtunpack選項:

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

要做到這一點,最好的辦法是使用transpose方法如下:

import numpy as np 

load_textdata = np.loadtxt('filename.txt') 
data = np.transpose(load_textdata)