2017-09-27 11 views
3

(パイソン2.7.12) - 私はそれを印刷するとき、私は正確に次のような出力を得る、N×N個の配列を作成しました:一貫性のないPythonの印刷出力

サンプルを

SampleArray=np.random.randint(1,100, size=(5,5))  
    [[49 72 88 56 41] 
    [30 73 6 43 53] 
    [83 54 65 16 34] 
    [25 17 73 10 46] 
    [75 77 82 12 91]] 
  • ニースと清潔。しかし

、私はコードを使用して第四列の要素により、この配列をソートするために行くとき:

サンプルB:

SampleArray=sorted(SampleArray, key=lambda x: x[4]) 

私は次の出力を得ます

[array([90, 9, 77, 63, 48]), array([43, 97, 47, 74, 53]), array([60, 64, 97, 2, 73]), array([34, 20, 42, 80, 76]), array([86, 61, 95, 21, 82])] 

「サンプルa」の形式で出力するにはどうすればよいですか。もし私が直線の列に数字を見ることができれば、デバッグがはるかに簡単になります。

+0

異なる種類のオブジェクトであるため、表示が変わります。 1つは配列で、もう1つはリストです。 Pythonでは、オブジェクトの各タイプは独自の表示形式を持っています。 – hpaulj

答えて

3

[[21 99 34 33 55] 
[14 81 92 44 97] 
[68 53 35 46 22] 
[64 33 52 40 75] 
[65 35 35 78 43]] 

出力FO r # sorted array

[[68 53 35 46 22] 
[65 35 35 78 43] 
[21 99 34 33 55] 
[64 33 52 40 75] 
[14 81 92 44 97]] 
+1

この 'numpy'モジュールは、独自の言語です... –

+0

@ Jean-FrançoisFabre、確かに) – RomanPerekhrest

0

は、あなただけの

SampleArray = np.array(SampleArray) 

サンプルコードを使用してnumpyの配列に戻ってサンプル列を変換する必要があります: -

import numpy as np 
SampleArray=np.random.randint(1,100, size=(5,5))  

print (SampleArray) 
SampleArray=sorted(SampleArray, key=lambda x: x[4]) 
print (SampleArray) 
SampleArray = np.array(SampleArray) 
print (SampleArray) 

出力: -

[[28 25 33 56 54] 
[77 88 10 68 61] 
[30 83 77 87 82] 
[83 93 70 1 2] 
[27 70 76 28 80]] 
[array([83, 93, 70, 1, 2]), array([28, 25, 33, 56, 54]), array([77, 88, 10, 68, 61]), array([27, 70, 76, 28, 80]), array([30, 83, 77, 87, 82])] 
[[83 93 70 1 2] 
[28 25 33 56 54] 
[77 88 10 68 61] 
[27 70 76 28 80] 
[30 83 77 87 82]] 
-1

これは助けることができます。

from pprint import pprint 
pprint(SampleArray) 

出力はサンプルAの出力と少し異なりますが、それでも見た目はきれいでデバッグは簡単です。

編集:

import numpy as np 

a = np.random.randint(1,100, size=(5,5)) 
print(a) # initial array 
print(a[np.argsort(a[:, -1])]) # sorted array 

# initial array用出力:ここに私の出力はルーチンnumpy.argsort()と単純

[[92 8 41 64 61] 
[18 67 91 80 35] 
[68 37 4 6 43] 
[26 81 57 26 52] 
[ 6 82 95 15 69]] 

[array([18, 67, 91, 80, 35]), 
array([68, 37, 4, 6, 43]), 
array([26, 81, 57, 26, 52]), 
array([92, 8, 41, 64, 61]), 
array([ 6, 82, 95, 15, 69])] 
関連する問題