Numpy: рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХреНрд░реЙрд╕-рд╕рд╣рд╕рдВрдмрдВрдз (рдЯреНрд░реИрдХ #1714)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдЕрдХреНрддреВре░ 2012  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

_рдореВрд▓ рдЯрд┐рдХрдЯ http://projects.scipy.org/numpy/ticket/1714 2011-01-15 рдХреЛ Trac рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ bubla рджреНрд╡рд╛рд░рд╛, рдЕрдЬреНрдЮрд╛рдд рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ред_

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рдПрдХ рдкреИрдЪ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ correlate рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЕрдм рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХреНрд░реЙрд╕-рд╕рд╣рд╕рдВрдмрдВрдз рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХреЗ
рджреЗрдЦреЗрдВ [ http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross -correlation the Wikipedia article]ред

рдореИрдВрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рд╕рд░рд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рднреА рдЬреЛрдбрд╝рд╛ рд╣реИред
рдкреИрдЪ рдирд╡реАрдирддрдо рдорд╛рд╕реНрдЯрд░ рдЧрд┐рдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ

01 - Enhancement Patch numpy.core

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

SO рдкрд░ рдПрдХ рдЙрддреНрддрд░ рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ: https://stackoverflow.com/a/5639626/5392420

рдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЕрдиреБрд▓рдЧреНрдирдХ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП), рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ - рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдпрд╣ рдЗрд╕ рддрд░рд╣ np.correlate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдирдкреБрдЯ рд╡реИрдХреНрдЯрд░ рдХреЛ "рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдЪрд┐рдд рдорд╛рди [-1,1] рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:

a = (a - np.mean(a)) / (np.std(a) * len(a))
b = (b - np.mean(b)) / (np.std(b))
c = np.correlate(a, b, 'full')

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

рдЕрдиреБрд▓рдЧреНрдирдХ 2011-01-15 рдкрд░ Trac рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ bubla рд╕реЗ рдХрд╣рд╛: correlate.parch

_@rgommers рдиреЗ 2011-03-29 рдХреЛ рд▓рд┐рдЦрд╛

рдЪреВрдВрдХрд┐ рдпрд╣ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ mode='full' рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХреНрдпрд╛ рд╕рд╣реА рд╣реИред

рдореБрдЭреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реИ рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЬрдм рдореЛрдб = 'рд╡реИрдз' рдФрд░ рджреЛрдиреЛрдВ рд╕рд░рдгрд┐рдпрд╛рдБ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреА рд╣реЛрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдкрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдорд╛рдорд▓реЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдХреНрдпрд╛ рд╕рднреА рд╕рд╣рд╕рдВрдмрджреНрдз рдореЛрдб рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

@VlamV , рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдирд╣реАрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЕрдиреНрдп рдореЛрдб рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ рдХреЛрдИ рднреА рд╕рдорд╛рдЪрд╛рд░ ?

рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ a рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛ ( mode=same рдпрд╛ mode=full )

рдХреЗрд╡рд▓ len(a) рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп bias рдФрд░ ddof рдХреЗ numpy.corrcoef рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛

SO рдкрд░ рдПрдХ рдЙрддреНрддрд░ рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ: https://stackoverflow.com/a/5639626/5392420

рдЗрд╕рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЕрдиреБрд▓рдЧреНрдирдХ рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП), рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ - рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдпрд╣ рдЗрд╕ рддрд░рд╣ np.correlate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдирдкреБрдЯ рд╡реИрдХреНрдЯрд░ рдХреЛ "рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдЪрд┐рдд рдорд╛рди [-1,1] рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:

a = (a - np.mean(a)) / (np.std(a) * len(a))
b = (b - np.mean(b)) / (np.std(b))
c = np.correlate(a, b, 'full')

рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ @wilberth рдХреА рдЯрд┐рдкреНрдкрдгреА) рдЗрд╕ рднрдВрдбрд╛рд░ рдореЗрдВ рд╕рд╣рд╕рдВрдмрдВрдз_рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ numpy рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/trichter/xcorr

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

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

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

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

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

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

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