2015-11-23 77 views
0

我想操縱一個數組並執行操作。 我的輸入是一個數組python數組操作和重新排列

a= [['f' '0' '1' '0' '1' '0'] 
    ['o' '0' '0' '1' '0' '0'] 
    ['o' '0' '1' '0' '1' '1'] 
    ['!b' '1' '0' '1' '0' '0'] 
    ['a' '0' '0' '1' '0' '0'] 
    ['r' '0' '1' '0' '1' '1']] 

我若第一行中,我的輸出應該只是其中1存在的列。同樣,我爲每一行做輸出。所以我的輸出應該是一個數組。

output = [['f' '1' '1' 
      'o' '0' '0' 
      'o' '1' '1' 
      '!b' '0' '0' 
      'a' '0' '0' 
      'r' '1' '1' ] 
      ['f' '0' 
      'o' '1' 
      'o' '0' 
      '!b' '1' 
      'a' '1' 
      'r' '0' ] 
      ['f' '1' '1' '0' 
      'o' '0' '0' '0' 
      'o' '1' '1' '1' 
      '!b' '0' '0' '0' 
      'a' '0' '0' '0' 
      'r' '1' '1' '1'] 
      ['f' '0' '0' 
      'o' '0' '1' 
      'o' '0' '0' 
      '!b' '1' '1' 
      'a' '0' '1' 
      'r' '0' '0' ] 
      ['f' '0' 
      'o' '1' 
      'o' '0' 
      '!b' '1' 
      'a' '1' 
      'r' '0' ] 
      ['f' '1' '1' '0' 
      'o' '0' '0' '0' 
      'o' '1' '1' '1' 
      '!b' '0' '0' '0' 
      'a' '0' '0' '0' 
      'r' '1' '1' '1']] 

這裏是我的代碼

  output = [] 
      for i in a: 
       for j in i: 
        if j == 1: 
         output = a[0:] 
         output.append([n][j]) for n in len(i) 
        else: 
         pass 
+0

你需要提供有關如何輸出從輸入得到更多的信息。 –

+0

其實它都在那裏。對於每一行,生成一個矩陣,該矩陣只有在該行中具有'1'的列。 –

+0

我理解你的問題,但你需要展示你的嘗試。 –

回答

1

對於每一行,產生具有唯一具有此行的'1'列的矩陣。

import numpy as np 

a = np.array([['f', '0', '1', '0', '1', '0'], 
    ['o', '0', '0', '1', '0', '0'], 
    ['o', '0', '1', '0', '1', '1'], 
    ['!b', '1', '0', '1', '0', '0'], 
    ['a', '0', '0', '1', '0', '0'], 
    ['r', '0', '1', '0', '1', '1']]) 

l = [] 
for r in a: 
    l.append(a[:, [i for i, c in enumerate(r) if i == 0 or c == '1']]) 
print l 

這可行,但也許有人更熟悉numpy可能會做得更好。

產地:

[array([['f', '1', '1'], 
     ['o', '0', '0'], 
     ['o', '1', '1'], 
     ['!b', '0', '0'], 
     ['a', '0', '0'], 
     ['r', '1', '1']], 
     dtype='|S2'), array([['f', '0'], 
     ['o', '1'], 
     ['o', '0'], 
     ['!b', '1'], 
     ['a', '1'], 
     ['r', '0']], 
     dtype='|S2'), array([['f', '1', '1', '0'], 
     ['o', '0', '0', '0'], 
     ['o', '1', '1', '1'], 
     ['!b', '0', '0', '0'], 
     ['a', '0', '0', '0'], 
     ['r', '1', '1', '1']], 
     dtype='|S2'), array([['f', '0', '0'], 
     ['o', '0', '1'], 
     ['o', '0', '0'], 
     ['!b', '1', '1'], 
     ['a', '0', '1'], 
     ['r', '0', '0']], 
     dtype='|S2'), array([['f', '0'], 
     ['o', '1'], 
     ['o', '0'], 
     ['!b', '1'], 
     ['a', '1'], 
     ['r', '0']], 
     dtype='|S2'), array([['f', '1', '1', '0'], 
     ['o', '0', '0', '0'], 
     ['o', '1', '1', '1'], 
     ['!b', '0', '0', '0'], 
     ['a', '0', '0', '0'], 
     ['r', '1', '1', '1']], 
     dtype='|S2')]