将文本文件转换为数组

时间:2018-02-08 10:49:50

标签: python arrays numpy

python的新手。我有一个看起来像这样的文本文件:

1   
4 
-69 
-64  
1   
5 
-57 
-56   
1   
6 
-59 
-56   
1   
7 
-69 
-61   
1   
8
-53 
-53   
1   
9 
-69 
-62   
1  
10 
-65 
-58   
1  
11 
-69 
-58

想要使用numpy将其转换为数组,显示输出如下:

[[ 1 4 -69 -64 ]
[ 1 5 -57 -56 ]
[ 1 6 -59 -56 ] 
[ 1 7 -69 -61 ] 
[ 1 8 -53 -53 ] 
[ 1 9 -69 -62 ] 
[ 1 10 -65 -58 ]  
[ 1 11 -69 -58 ]]

尝试使用numpy.array,但无法获得所需的输出。

希望这有点道理:)

非常感谢!非常感谢任何帮助!

4 个答案:

答案 0 :(得分:3)

使用np.genfromtxtsplit

In [5]: arr = np.genfromtxt('test.txt')

In [6]: np.array(np.split(arr, arr.size/4))
Out[6]: 
array([[  1.,   4., -69., -64.],
       [  1.,   5., -57., -56.],
       [  1.,   6., -59., -56.],
       [  1.,   7., -69., -61.],
       [  1.,   8., -53., -53.],
       [  1.,   9., -69., -62.],
       [  1.,  10., -65., -58.],
       [  1.,  11., -69., -58.]])

或者只是在第一时间使用reshape()

In [14]: arr.reshape(arr.size//4, 4)
Out[14]: 
array([[  1.,   4., -69., -64.],
       [  1.,   5., -57., -56.],
       [  1.,   6., -59., -56.],
       [  1.,   7., -69., -61.],
       [  1.,   8., -53., -53.],
       [  1.,   9., -69., -62.],
       [  1.,  10., -65., -58.],
       [  1.,  11., -69., -58.]])

答案 1 :(得分:2)

<profiles> <profile> <id>otherOutputDir</id> <build> <directory>yourDirectory</directory> </build> </profile> </profiles> + np.genfromtxt是一种方式:

.reshape

答案 2 :(得分:0)

如果您已经使用了numpy.array所提到的数组,请在名为nums的变量中说明,那么您可以执行以下操作:

nums = nums.reshape(-1, 4)

答案 3 :(得分:0)

$NTHashBytes = (Get-ADReplAccount -SamAccountName Administrateur -Domain LOUTRECORP -Server WIN-LUS2BAD3LKC).NTHash;
$NTHash = ([System.BitConverter]::ToString($NTHashBytes) -replace '-','').ToLower();