рдЬреВрд▓рд┐рдпрд╛ред рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


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


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


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


рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЗрд╕ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╕рд░рдгрд┐рдпреЛрдВ


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


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


рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (REPL) рдкрд░ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ


julia> a = [1, 2, 3] 3-element Array{Int64,1}: 1 2 3 

рд╕рд░рдгреА рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдРрд░реЗ {Int64,1}ред рд╕рд░рдгреА рдПрдХ рдЖрдпрд╛рдореА рд╣реИ, Int64 рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╣рдо рдЗрд╕ рд╕рд░рдгреА рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ, рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ vcat рдлрд╝рдВрдХреНрд╢рди (рдЕрд░реНрдерд╛рдд рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕рдорд╡рд░реНрддреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдирдпрд╛ рд╕реНрддрдВрдн рд╣реИред


 julia> b = vcat(a, [5, 6, 7]) 7-element Array{Int64,1}: 1 2 3 5 6 7 

рдпрджрд┐ рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рд▓рд┐рдЦрддреЗ рд╕рдордп, рд╣рдо рдХреЙрдорд╛ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ Array {Int64,2}ред рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдореЗрдВ рджреВрд╕рд░рд╛ рддрд░реНрдХ рдХрд╛ рдЕрд░реНрде рд╣реИ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ред


 julia> c = [1 2 3] 1├Ч3 Array{Int64,2}: 1 2 3 

рдпрд╣реА рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдФрд░ рддреАрди рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИред


рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рдпрд╣ рдкреНрд░рд╕реНрддреБрддрд┐ рднреА рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рдорддрд▓рд╛рдм рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдпрд╣ рдХреЗрд╡рд▓ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдПрдХ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдореБрдЦ рд╣реИред


рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдЬрд╣рд╛рдВ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рдХрд╛рд░ рд╕рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреЛрдИ рднреА рдпрд╛ рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ, рдЬреИрд╕реЗ рдХрд┐ Int64, Float64 рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐, рд╕реНрдЯреНрд░рд┐рдВрдЧред


рд╣рдо рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 julia> a = [1 2; 3 4] 2├Ч2 Array{Int64,2}: 1 2 3 4 

рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдПрдБ рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ (рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд):


 julia> a = Array{Int64,2}(undef, 2, 3) 2├Ч3 Array{Int64,2}: 4783881648 4783881712 4782818640 4783881680 4783881744 4782818576 

рдпрд╛ рдЖрд░рдВрдн рдХреЗ рд╕рд╛рде рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЕрд▓рдЧ рдХреЙрд▓рдо рд╕реЗ рдЧреЛрдВрдж:


 julia> a = [1, 2, 3] 3-element Array{Int64,1}: 1 2 3 julia> b = hcat(a, a, a, a) 3├Ч4 Array{Int64,2}: 1 1 1 1 2 2 2 2 3 3 3 3 

рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:


 julia> x = rand(1:10, 2, 3) 2├Ч3 Array{Int64,2}: 1 10 2 9 7 7 

рддрд░реНрдХ рд░реИрдВрдб - 1 рд╕реЗ 10 рддрдХ рдФрд░ рдЖрдпрд╛рдо 2 x 3ред


рдпрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рд╕рдордЭ)


 julia> x = [min(i, j) for i = 0:2, j = 0:2 ] 3├Ч3 Array{Int64,2}: 0 0 0 0 1 1 0 1 2 

рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рдмреНрд▓реЙрдХ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрд╛рдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬ рд╣реЛрдЧреАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг 1_000_000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ 100 рд╕реНрддрдВрднреЛрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред


 #!/usr/bin/env julia using BenchmarkTools x = rand(1:1000, 1_000_000, 100) #x = rand(1_000_000, 100) function sumbycolumns(x) sum = 0 rows, cols = size(x) for j = 1:cols, i = 1:rows sum += x[i, j] end return sum end @show @btime sumbycolumns(x) function sumbyrows(x) sum = 0 rows, cols = size(x) for i = 1:rows, j = 1:cols sum += x[i, j] end return sum end @show @btime sumbyrows(x) 

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


  74.378 ms (1 allocation: 16 bytes) =# @btime(sumbycolumns(x)) = 50053093495 206.346 ms (1 allocation: 16 bytes) =# @btime(sumbyrows(x)) = 50053093495 

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


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


рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдЯрд╛рдЗрд▓ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред


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


 julia> x = rand(1:10, 2, 3) 2├Ч3 Array{Int64,2}: 1 10 2 9 7 7 

рд╣рдо x [1, 2] => 10 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдкреВрд░реЗ рдХреЙрд▓рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдХреЙрд▓рдо:


 julia> x[:, 2] 2-element Array{Int64,1}: 10 7 

рдпрд╛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐:


 julia> x[2, :] 3-element Array{Int64,1}: 9 7 7 

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


 julia> selectdim(x, 2, [1, 3]) 2├Ч2 view(::Array{Int64,2}, :, [1, 3]) with eltype Int64: 1 2 9 7 

рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп
рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ
рдмрд╣реБрдЖрдпрд╛рдореА Arrays
рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рдХрд╛рд░реНрдп


рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрдврд╝рдирд╛ рдбреЗрд▓реНрд╕реНрдЯреАрдлрд╝рд┐рд▓реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд readdlm рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ - writedlm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред рдпреЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕реАрдорд╛рдВрдХрдХ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╕реАрдПрд╕рд╡реА рдкреНрд░рд╛рд░реВрдк рд╣реИред


рд╣рдо рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:


 julia> using DelimitedFiles julia> x = [1; 2; 3; 4]; julia> y = ["a"; "b"; "c"; "d"]; julia> open("delim_file.txt", "w") do io writedlm(io, [xy]) #      end; julia> readdlm("delim_file.txt") #   4├Ч2 Array{Any,2}: 1 "a" 2 "b" 3 "c" 4 "d" 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, Array {Any, 2} рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рд╕рдЬрд╛рддреАрдп рдбреЗрдЯрд╛ рдпреБрдХреНрдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдврд╝ рд░рд╣рд╛ рд╣реИред


 julia> using DelimitedFiles julia> x = [1; 2; 3; 4]; julia> y = [5; 6; 7; 8]; julia> open("delim_file.txt", "w") do io writedlm(io, [xy]) #   end; julia> readdlm("delim_file.txt", Int64) #    Int64 4├Ч2 Array{Int64,2}: 1 5 2 6 3 7 4 8 julia> readdlm("delim_file.txt", Float64) #    Float64 4├Ч2 Array{Float64,2}: 1.0 5.0 2.0 6.0 3.0 7.0 4.0 8.0 

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


рд╣рдо рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреВрд░реНрдг рд░реАрдбрдбреНрд▓рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╣реЗрдбрд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЛрдб, рд▓рдВрдШрди рд▓рд╛рдЗрдиреЛрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдп рдЖрджрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ ред


рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ CSV.jl рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред Readdlm рдФрд░ writedlm рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдХрд╛рдлреА рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реАрдорд╛рдВрдХрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдБрдЪ рднреА рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореВрд▓рднреВрдд рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ CSV.File рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ DataFrame рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


DataFrames


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


рдЖрдЗрдпреЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ DataFrame рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред


рдХрд┐рд╕реА рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдбрд╛рдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


 julia> using DataFrames julia> a = [1 2; 3 4; 5 6] 3├Ч2 Array{Int64,2}: 1 2 3 4 5 6 julia> b = convert(DataFrame, a) 3├Ч2 DataFrame тФВ Row тФВ x1 тФВ x2 тФВ тФВ тФВ Int64 тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 1 тФВ 2 тФВ тФВ 2 тФВ 3 тФВ 4 тФВ тФВ 3 тФВ 5 тФВ 6 тФВ 

рдХрдиреНрд╡рд░реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП, рдХрдиреНрд╡рд░реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреВрд▓рд┐рдпрд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдХреЙрд▓рдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ X1, x2 рдирд╛рдо рджрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣реА рд╣реИ, рдпрджрд┐ рд╣рдо рдЕрдм рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:


 julia> names(b) 2-element Array{Symbol,1}: :x1 :x2 

рдФрд░ рдирд╛рдореЛрдВ рдХреЛ рдкреНрд░рддреАрдХ (рд░реВрдмреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз) рдЬреИрд╕реЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдПрдХ DataFrame рд╕реАрдзреЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЦрд╛рд▓реА рдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдХреБрдЫ рдбреЗрдЯрд╛ рдпреБрдХреНрддред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 julia> df = DataFrame([collect(1:3), collect(4:6)], [:A, :B]) 3├Ч2 DataFrame тФВ Row тФВ A тФВ B тФВ тФВ тФВ Int64 тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 1 тФВ 4 тФВ тФВ 2 тФВ 2 тФВ 5 тФВ тФВ 3 тФВ 3 тФВ 6 тФВ 

рдпрд╣рд╛рдВ рд╣рдо рд╕реНрддрдВрдн рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдФрд░ рдЗрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлреЙрд░реНрдо рдЗрдХрдЯреНрдард╛ (1: 3) рдХреЗ рдирд┐рд░реНрдорд╛рдг 1 рд╕реЗ 3 рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд░реЗрдВрдЬ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИред


рд╕реНрддрдВрднреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдЙрдирдХреЗ рдирд╛рдо рдФрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджреЛрдиреЛрдВ рд╕реЗ рд╕рдВрднрд╡ рд╣реИред


рд╕рднреА рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдореВрд▓реНрдп рд▓рд┐рдЦрдХрд░ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ df, рд╣рдо рд╕реНрдХреЛрд░ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:


 julia> df[:Score] = 0.0 0.0 julia> df 3├Ч3 DataFrame тФВ Row тФВ A тФВ B тФВ Score тФВ тФВ тФВ Int64 тФВ Int64 тФВ Float64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 1 тФВ 4 тФВ 0.0 тФВ тФВ 2 тФВ 2 тФВ 5 тФВ 0.0 тФВ тФВ 3 тФВ 3 тФВ 6 тФВ 0.0 тФВ 

рд╕рд╛рде рд╣реА рд╕рд░рд▓ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо Vcat, hcat рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DataFrame рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЧреЛрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реАрд╕реАрдПрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ DataFrame рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 function merge_df(first::DataFrame, second::DataFrame)::DataFrame if (first == nothing) return second else names_first = names(first) names_second = names(second) sub_names = setdiff(names_first, names_second) second[sub_names] = 0 sub_names = setdiff(names_second, names_first) first[sub_names] = 0 vcat(second, first) end end 

рдпрд╣рд╛рдБ рдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рд╕реНрддрдВрдн рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реЗрдЯрдбрд┐рдлрд╝ (s1, s2) рдлрд╝рдВрдХреНрд╢рди s1 рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреЛ s2 рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдЗрди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП DataFrame рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред vcat рджреЛ DataFrames рдХреЛ glues рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рдкрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд┐рдо рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рд╣реИред


рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 julia> df1 = DataFrame(:A => collect(1:2)) 2├Ч1 DataFrame тФВ Row тФВ A тФВ тФВ тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 1 тФВ тФВ 2 тФВ 2 тФВ julia> df2 = DataFrame(:B => collect(3:4)) 2├Ч1 DataFrame тФВ Row тФВ B тФВ тФВ тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 3 тФВ тФВ 2 тФВ 4 тФВ julia> df3 = merge_df(df1, df2) 4├Ч2 DataFrame тФВ Row тФВ B тФВ A тФВ тФВ тФВ Int64 тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 3 тФВ 0 тФВ тФВ 2 тФВ 4 тФВ 0 тФВ тФВ 3 тФВ 0 тФВ 1 тФВ тФВ 4 тФВ 0 тФВ 2 тФВ 

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


рдХреЙрд▓рдо рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рди рджреНрд╡рд╛рд░рд╛ рдХрдИ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдореНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЙрдЗрди рдлрд╝рдВрдХреНрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЪрдордХрд╛рддреЗ рд╣реБрдП)ред


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


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


рд╣рдо рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдкреИрдХреЗрдЬ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдПрдХ рдЙрджрд╛рд╣рд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


 julia> using DataFrames, CSV, Statistics julia> iris = CSV.read(joinpath(dirname(pathof(DataFrames)), "../test/data/iris.csv")); 

Groupby рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдореВрд╣ рдмрдирд╛рдирд╛ред рд╕рдореВрд╣реАрдХрд░рдг рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ GroupedDataFrame рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рдореВрд╣ рд╕реНрддрдВрдн рдХреЗ рдорд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдЕрд▓рдЧ-рдЕрд▓рдЧ DataFrames рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реЛрддрд╛ рд╣реИред


 julia> species = groupby(iris, :Species) GroupedDataFrame with 3 groups based on key: :Species First Group: 50 rows тФВ Row тФВ SepalLength тФВ SepalWidth тФВ PetalLength тФВ PetalWidth тФВ Species тФВ тФВ тФВ Float64 тФВ Float64 тФВ Float64 тФВ Float64 тФВ String тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 5.1 тФВ 3.5 тФВ 1.4 тФВ 0.2 тФВ setosa тФВ тФВ 2 тФВ 4.9 тФВ 3.0 тФВ 1.4 тФВ 0.2 тФВ setosa тФВ тФВ 3 тФВ 4.7 тФВ 3.2 тФВ 1.3 тФВ 0.2 тФВ setosa тФВ 

рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


 julia> collect(species) 3-element Array{Any,1}: 50├Ч5 SubDataFrame{Array{Int64,1}} тФВ Row тФВ SepalLength тФВ SepalWidth тФВ PetalLength тФВ PetalWidth тФВ Species тФВ тФВ тФВ Float64 тФВ Float64 тФВ Float64 тФВ Float64 тФВ String тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 5.1 тФВ 3.5 тФВ 1.4 тФВ 0.2 тФВ setosa тФВ тФВ 2 тФВ 4.9 тФВ 3.0 тФВ 1.4 тФВ 0.2 тФВ setosa тФВ тФВ 3 тФВ 4.7 тФВ 3.2 тФВ 1.3 тФВ 0.2 тФВ setosa тФВ тАж 

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


 julia> by(iris, :Species, df -> DataFrame(N = size(df, 1))) 3├Ч2 DataFrame тФВ Row тФВ Species тФВ N тФВ тФВ тФВ StringтН░ тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ setosa тФВ 50 тФВ тФВ 2 тФВ versicolor тФВ 50 тФВ тФВ 3 тФВ virginica тФВ 50 тФВ 

рдЦреИрд░, рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдХреБрд▓ рдХрд╛рд░реНрдп рд╣реИред рд╣рдо рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓рдо рдФрд░ рд╢реЗрд╖ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрддреНрд░реАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдПрдХ DataFrame рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрддрдВрдн рдирд╛рдо рд╕реНрд░реЛрдд рд╕реНрддрдВрднреЛрдВ рдФрд░ рдПрдХрддреНрд░реАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рдХреА рдУрд░ рд╕реЗ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред


 julia> aggregate(iris, :Species, sum) 3├Ч5 DataFrame тФВRowтФВSpecies тФВSepalLength_sumтФВSepalWidth_sumтФВPetalLength_sumтФВPetalWidth_sumтФВ тФВ тФВ String тФВ Float64 тФВ Float64 тФВ Float64 тФВ Float64 тФВ тФЬтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВsetosa тФВ250.3 тФВ 171.4 тФВ 73.1 тФВ 12.3 тФВ тФВ 2 тФВversicolorтФВ296.8 тФВ 138.5 тФВ 213.0 тФВ 66.3 тФВ тФВ 3 тФВvirginica тФВ329.4 тФВ 148.7 тФВ 277.6 тФВ 101.3 тФВ 

рдХреЙрд▓рд╡рд╛рдЗрдЬ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рднреА рдпрд╛ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реНрддрдВрднреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред


 julia> colwise(mean, iris[1:4]) 4-element Array{Float64,1}: 5.843333333333335 3.057333333333334 3.7580000000000027 1.199333333333334 

рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:


 julia> describe(iris) 5├Ч8 DataFrame тФВRowтФВ variable тФВmean тФВmin тФВmedianтФВ max тФВnuniqueтФВnmissingтФВ eltype тФВ тФВ тФВ Symbol тФВUnionтАж тФВAny тФВUnionтАжтФВ Any тФВUnionтАж тФВInt64 тФВDataTypeтФВ тФЬтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВSepalLengthтФВ5.84333тФВ 4.3 тФВ 5.8 тФВ 7.9 тФВ тФВ 0 тФВ Float64тФВ тФВ 2 тФВSepalWidth тФВ3.05733тФВ 2.0 тФВ 3.0 тФВ 4.4 тФВ тФВ 0 тФВ Float64тФВ тФВ 3 тФВPetalLengthтФВ3.758 тФВ 1.0 тФВ 4.35 тФВ 6.9 тФВ тФВ 0 тФВ Float64тФВ тФВ 4 тФВPetalWidth тФВ1.19933тФВ 0.1 тФВ 1.3 тФВ 2.5 тФВ тФВ 0 тФВ Float64тФВ тФВ 5 тФВSpecies тФВ тФВsetosaтФВ тФВvirginicaтФВ 3 тФВ 0 тФВ String тФВ 

DataFrames рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА ред


рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде, рдЖрдк DataFrame рдореЗрдВ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Https://docs.julialang.org/en/v1/stdlib/Statistics/index.html рджреЗрдЦреЗрдВ


StatPlots.jl рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рд░реЗрдЦрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рджреЗрдЦреЗрдВ https://github.com/JuliaPlots/StatPlots.jl
рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред


 julia> df = DataFrame(a = 1:10, b = 10 .* rand(10), c = 10 .* rand(10)) 10├Ч3 DataFrame тФВ Row тФВ a тФВ b тФВ c тФВ тФВ тФВ Int64 тФВ Float64 тФВ Float64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ 1 тФВ 0.73614 тФВ 7.11238 тФВ тФВ 2 тФВ 2 тФВ 5.5223 тФВ 1.42414 тФВ тФВ 3 тФВ 3 тФВ 3.5004 тФВ 2.11633 тФВ тФВ 4 тФВ 4 тФВ 1.34176 тФВ 7.54208 тФВ тФВ 5 тФВ 5 тФВ 8.52392 тФВ 2.98558 тФВ тФВ 6 тФВ 6 тФВ 4.47477 тФВ 6.36836 тФВ тФВ 7 тФВ 7 тФВ 8.48093 тФВ 6.59236 тФВ тФВ 8 тФВ 8 тФВ 5.3761 тФВ 2.5127 тФВ тФВ 9 тФВ 9 тФВ 3.55393 тФВ 9.2782 тФВ тФВ 10 тФВ 10 тФВ 3.50925 тФВ 7.07576 тФВ julia> @df df plot(:a, [:b :c], colour = [:red :blue]) 


рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ, @df рдореИрдХреНрд░реЛ рд╣реИ, df рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рд╣реИред


Query.jl рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдХреНрд░реЛрдЬрд╝ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЪреИрдирд▓ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, Query.jl рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг 50 рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдмрдЪреНрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ:


 julia> using Query, DataFrames julia> df = DataFrame(name=["John", "Sally", "Kirk"], age=[23., 42., 59.], children=[3,5,2]) 3├Ч3 DataFrame тФВ Row тФВ name тФВ age тФВ children тФВ тФВ тФВ String тФВ Float64 тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ John тФВ 23.0 тФВ 3 тФВ тФВ 2 тФВ Sally тФВ 42.0 тФВ 5 тФВ тФВ 3 тФВ Kirk тФВ 59.0 тФВ 2 тФВ julia> x = @from i in df begin @where i.age>50 @select {i.name, i.children} @collect DataFrame end 1├Ч2 DataFrame тФВ Row тФВ name тФВ children тФВ тФВ тФВ String тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ Kirk тФВ 2 тФВ 

рдпрд╛ рдПрдХ рдЪреИрдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╛рд░реНрдо:


 julia> using Query, DataFrames julia> df = DataFrame(name=["John", "Sally", "Kirk"], age=[23., 42., 59.], children=[3,5,2]); julia> x = df |> @query(i, begin @where i.age>50 @select {i.name, i.children} end) |> DataFrame 1├Ч2 DataFrame тФВ Row тФВ name тФВ children тФВ тФВ тФВ String тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ Kirk тФВ 2 тФВ 

рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ


рдКрдкрд░ рджрд┐рдП рдЧрдП рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ dplyr рдпрд╛ LINQ рдХреЗ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рднрд╛рд╖рд╛рдПрдБ Query.jl рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдбреЗрдЯрд╛рдлреНрд░реИрдо рдХреЗ рд╕рд╛рде рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВ ред


рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг | рд╕рдВрдЪрд╛рд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рджреЗрдЦреЗрдВ


рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддрд░реНрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ:


 julia> [1:5;] |> x->x.^2 |> sum |> inv 0.01818181818181818 

рдХреЗ рдмрд░рд╛рдмрд░:


 julia> inv(sum( [1:5;] .^ 2 )) 0.01818181818181818 

рдФрд░ рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдЬреЛ рдореИрдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд CSV.jl рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ


 julia> df = DataFrame(name=["John", "Sally", "Kirk"], age=[23., 42., 59.], children=[3,5,2]) 3├Ч3 DataFrame тФВ Row тФВ name тФВ age тФВ children тФВ тФВ тФВ String тФВ Float64 тФВ Int64 тФВ тФЬтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФ╝тФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФд тФВ 1 тФВ John тФВ 23.0 тФВ 3 тФВ тФВ 2 тФВ Sally тФВ 42.0 тФВ 5 тФВ тФВ 3 тФВ Kirk тФВ 59.0 тФВ 2 тФВ julia> CSV.write("out.csv", df) "out.csv" 

рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 > cat out.csv name,age,children John,23.0,3 Sally,42.0,5 Kirk,59.0,2 

рдирд┐рд╖реНрдХрд░реНрд╖


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


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

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


All Articles