Numpy: рдЙрдиреНрдирдд рдЕрдиреБрдХреНрд░рдордг рдореЗрдВ рдПрдХ рдирдпрд╛ рдЬрдмрд░рджрд╕реНрдд рдмрдЧ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдорд╛рд░реНрдЪ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ

train = np.zeros([26,26])
train2 = np.zeros([26,26])
tmp = [1,2,3,4,5,6,1,2,3,4,5,6]
train[tmp[0:-1], tmp[1:]] += 1
for i in range(len(tmp)-1):
    train2[tmp[i], tmp[i+1]] += 1
print(np.sum(train - train2))

рдЖрдЙрдЯрдкреБрдЯ -5 . рд╣реИ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ train рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ train2 рдЬрдм tmp рдореЗрдВ рдХреБрдЫ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЯреБрдкрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╕реБрдиреНрди рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк "рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐" рдкрд░ рджреЛ рдмрд╛рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП [1, 2] ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ (рдпрд╛ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдк np.add.at рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ "рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ ufunc рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ [рд╕реВрдЪрдХрд╛рдВрдХ] + = рдмреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред":

train = np.zeros([26,26])
np.add.at(train, [tmp[:-1], tmp[1:]], 1)

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдкрдХреЛ рднреАред

рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк "рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐" рдкрд░ рджреЛ рдмрд╛рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП [1, 2] ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ (рдпрд╛ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдк np.add.at рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ "рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ ufunc рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ [рд╕реВрдЪрдХрд╛рдВрдХ] + = рдмреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред":

train = np.zeros([26,26])
np.add.at(train, [tmp[:-1], tmp[1:]], 1)

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dmvianna picture dmvianna  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MorBilly picture MorBilly  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Kreol64 picture Kreol64  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

'
Pezhvuk picture Pezhvuk  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ