рд╕рд╛рдЗрдерди: 30x рд╕реЗ рдЕрдзрд┐рдХ рдкрд╛рдпрдерди рдХреЛрдб рддреНрд╡рд░рдг

рдкрд╛рдпрдерди рдПрдХ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рднрд╛рд╖рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреЛрдб рд╕рд╣рдЬ рдФрд░ рдЕрдЪреНрдЫреА рдкрдардиреАрдпрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЕрдХреНрд╕рд░ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рд╢рд┐рдХрд╛рдпрдд рд╕реБрдиреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ: "рдкрд╛рдпрдерди рдзреАрдорд╛ рд╣реИред" рдФрд░ рдЬреЛ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд╣рддреЗ рд╣реИрдВ рд╡реЗ рд╕рдЪреНрдЪрд╛рдИ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд╛рдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдХрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдкрд╛рдпрдерди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдзреАрдорд╛ рд╣реИред рдпрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред



рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ рд▓реЛрдЧ Numpy, Pandas, рдпрд╛ Scikit-Learn рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд░реИрдкрд┐рдбреНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЧрдгрдирд╛рдУрдВ рдореЗрдВ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдпреЗ рд╕рднреА рддреНрд╡рд░рдг рддрдХрдиреАрдХ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдпрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╢реБрджреНрдз рдкрд╛рдпрдерди рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓реВрдк рдХреЗ for рдПрдХ рдмрдбрд╝рд╛ for рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЬрд┐рд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдбреЗрдЯрд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдкрд╛рдпрдерди рдХреЛ рд╣реА рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рд╕рд╛рдЗрдерди рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рдЗрдерди рдХреНрдпрд╛ рд╣реИ?


рд╕рд╛рдЗрдереЙрди, рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, рдкрд╛рдпрдерди рдФрд░ C / C ++ рдХреЗ рдмреАрдЪ рдХреА рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рдд рд╣реИред рд╕рд╛рдЗрдерди рдЖрдкрдХреЛ рдХреБрдЫ рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рд╕реАрдзреЗ рд╕реА рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 x = 0.5 

рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

 cdef float x = 0.5 

рдпрд╣ рдирд┐рд░реНрдорд╛рдг рд╕рд╛рдЗрдерди рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрд░ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ, рдЪрд░ рдХреЛ рд╕реА рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдзрд╛рд░рдг рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЪрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдЗрдереЙрди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рд╕реА рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реА рдореЗрдВ, рдЪрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕реНрдкрд╖реНрдЯ рдШреЛрд╖рдгрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╕рд╛рдЗрдерди рд╕реНрдерд╛рдкрдирд╛ рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ:

 pip install cython 

рд╕рд╛рдЗрдерди рдореЗрдВ рдкреНрд░рдХрд╛рд░


рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реЗрдЯ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╣реИ, рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

рдпрджрд┐ рд╣рдо рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

  • cdef int a, b, c
  • cdef char *s
  • cdef float x = 0.5 (рдПрдХрд▓ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛)
  • cdef double x = 63.4 (рдбрдмрд▓ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛)
  • cdef list names
  • cdef dict goals_for_each_play
  • cdef object card_deck

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, C / C ++ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ!

рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

  • def рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
  • cdef рдПрдХ cdef рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдХреЛрдб рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдЗрдерди рдХреЛрдб рдХреЗ рднреАрддрд░ рд╣реА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • cpdef - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬрд┐рд╕реЗ C рдФрд░ рдкрд╛рдпрдерди рджреЛрдиреЛрдВ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдкрд╛рдпрдерди рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рд╣рдо рдкрд╛рдпрдерди рдХреЛрдб рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛ рджреЗрдВрдЧреЗред

рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рдЧрддрд┐ рджреЗрдирд╛


рдЪрд▓реЛ рдкрд╛рдпрдерди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд▓реВрдк рдХреЗ for рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рднрд╛рдЬреНрдп рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╢реБрджреНрдз рдкрд╛рдпрдерди рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

 def test(x):    y = 1    for i in range(1, x+1):        y *= i    return y 

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд░рд╛рдмрд░ рд╕рд╛рдЗрдерди рдЕрдкрдиреЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рди рд╣реИред рдЗрд╕реА рдХреЛрдб рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .pyx рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдб рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрд╕рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдирд╛ рд╣реИ:

 cpdef int test(int x):    cdef int y = 1    cdef int i    for i in range(1, x+1):        y *= i    return y 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ cpdef рдХреАрд╡рд░реНрдб рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдкрд╛рдпрдерди рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдХрд╛рд░ рдХреЛ рдЪрд░ i рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд▓реВрдк рдХрд╛рдЙрдВрдЯрд░ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдпрд╣ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рднреА рдЪрд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдЕрдм setup.py рдмрдирд╛рдПрдБ, рдЬреЛ рд╣рдореЗрдВ Cython рдХреЛрдб рдХреЛ C рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:

 from distutils.core import setup from Cython.Build import cythonize setup(ext_modules = cythonize('run_cython.pyx')) 

рд╕рдВрдХрд▓рди рдХрд░реЗрдВ:

 python setup.py build_ext --inplace 

C рдХреЛрдб рдЕрдм рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдпрджрд┐ рдЖрдк рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ Cython рдХреЛрдб рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЖрдк run_cython.c рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ run_cython.c рдлрд╝рд╛рдЗрд▓ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд┐рдереЙрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕реА-рдХреЛрдб рдХреНрдпрд╛ рд╣реИред

рдЕрдм рдЖрдк рд╣рдорд╛рд░реЗ рдЕрд▓реНрдЯреНрд░рд╛рдлрд╛рд╕реНрдЯ рд╕реА рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 import run_python import run_cython import time number = 10 start = time.time() run_python.test(number) end = time.time() py_time = end - start print("Python time = {}".format(py_time)) start = time.time() run_cython.test(number) end = time.time() cy_time = end - start print("Cython time = {}".format(cy_time)) print("Speedup = {}".format(py_time / cy_time)) 

рдпрд╣ рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ - рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдлрд╛рдЗрд▓реЗрдВ рдЖрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рд╣рд░ рд╕рдордп рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рд╛рдЗрдерди рд╕рдВрд╕реНрдХрд░рдг рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реИред рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рдХрд╛рд░реНрдп, рдЙрддрдиреА рдмрдбрд╝реА рддреНрд╡рд░рдг рдЬреЛ рд╕рд╛рдЗрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдЦреНрдпрд╛
рдкрд╛рдпрдерди рдЯрд╛рдЗрдо рдореИрдЯреНрд░рд┐рдХ
рд╕рд╛рдЗрдерди рд╕рдордп рдореАрдЯреНрд░рд┐рдХ
рд╕реНрдкреАрдбрдЕрдк рд╕реНрдХреЛрд░
10
1.6689300537109375e-06
4.76837158203125e-07
3.5
100
3.337860107421875e-06
4.76837158203125e-07
7.0
1000
2.193450927734375e-05
9.5367431640625e-07
23.0
10000
.0002090930938720703
6.4373016357421875e-06
32,481
100000
.0021562576293945312
6.008148193359375e-05
35.89
1000000
.02128767967224121
.0005953311920166016
35.75
10000000
0.2148280143737793
.00594782829284668
36.1187317112278

рдкрд░рд┐рдгрд╛рдо


рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдХрд╛рдлреА рддреЗрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рд▓реВрдк рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрддрдиреЗ рд╣реА рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИ - рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдЖрдк рд╕рд╛рдЗрдерди рд╕реЗ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

Source: https://habr.com/ru/post/hi462487/


All Articles