2015-11-24 23 views
6

में शामिल होने के() का उपयोग कर तत्वों निम्नलिखित numpy सरणी एकविलय numpy सरणी अजगर

a = [ 
    array([['x', 'y', 'k'], ['d', '2', 'z'], ['a', '15', 'r']], dtype='|S2'), 
    array([['p', '49'], ['l', 'n']], dtype='|S2'), 
    array([['5', 'y'], ['33', 'u'], ['v', 'z']], dtype='|S2'), 
    array([['f', 'i'], ['c', 'm'], ['u', '98']] dtype='|S2') 
    ] 
उत्पादन ख में

b = x!y.d!2.a!15 * x!k.d!z.a!r , p!49.l!n , 5!y.33!u.v!z , f!i.c!m.u!98 

इस

#x #y #k 
    #d #2 #z 
    #a #15 #r 
तरह प्रत्येक उप सरणी पर विचार करें कनवर्ट करना चाहते हैं

फिर 0 और 1 कॉलम को '!' के साथ मर्ज करें और प्रत्येक पंक्ति '।' के साथ फिर 0 और 2 कॉलम मर्ज करें। और इसी तरह। यहाँ 0,1 और 0,2 स्तंभों का उपयोग विलय कर रहे हैं '*' और ',' '!' '.' '*' ','

का उपयोग कर उप-सरणियों

बस तार विलय विलय करने के लिए प्रयोग किया जाता है मैं निम्नलिखित की कोशिश की कोड। सके परिणाम हालांकि

temp = [] 
for c in a: 
    temp = a[0:] 
    b = " * ".join(".".join(var1+"!"+var2 for var1,var2 in zip(temp,a) for row in a) 
    print b 
print " , " 

उत्तर

4
In [144]: " , ".join(" * ".join(".".join(str(xx) + '!' + str(yy) for xx, yy in zip(x[:, 0], x[:, _x])) for _x in range(1, len(x[0]))) for x in a) 
Out[144]: 'x!y.d!2.a!15 * x!k.d!z.a!r , p!49.l!n , 5!y.33!u.v!z , f!i.c!m.u!98' 
4

मैं कैसे समझते हैं, अपने समाधान हो सकता है इस तरह मिलती है:

import numpy as np 
a = [ 
    np.array([['x', 'y', 'k'], ['d', '2', 'z'], ['a', '15', 'r']], dtype='|S2'), 
    np.array([['p', '49'], ['l', 'n']], dtype='|S2'), 
    np.array([['5', 'y'], ['33', 'u'], ['v', 'z']], dtype='|S2'), 
    np.array([['f', 'i'], ['c', 'm'], ['u', '98']], dtype='|S2') 
    ] 

aa = [] 
for k in a: 
    bb = [] 
    for i in range(len(k[0]) - 1): 
    cc = [] 
    for j in range(len(k)): 
     cc.append('!'.join([k[j][0], k[j][i + 1]])) 
    bb.append('.'.join(cc)) 
    aa.append(' * '.join(bb)) 
b = ' , '.join(aa) 

print b 

तो यह गलत है, तो कृपया अपने एल्गोरिथ्म स्पष्ट।

+0

हाँ अपने गलत @Abylay – Chloe

+0

@Chloe, कृपया, अधिक उदाहरण देते हैं, को समझने के लिए बेहतर – Abylay

+0

मैं संशोधित यह – Chloe