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)
рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк "рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐" рдкрд░ рджреЛ рдмрд╛рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
[1, 2]
ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ (рдпрд╛ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредрд▓реЗрдХрд┐рди рдЖрдк
np.add.at
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ "рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ ufunc рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ [рд╕реВрдЪрдХрд╛рдВрдХ] + = рдмреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред":