Numpy: .max() рдФрд░ .min() 'S' рдФрд░ 'U' рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ (Trac #1316)

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

_рдореВрд▓ рдЯрд┐рдХрдЯ http://projects.scipy.org/numpy/ticket/1316 2009-12-07 рдХреЛ @mdboom рджреНрд╡рд╛рд░рд╛

рдпрд╣ рдПрдХ рд╕рдордЭрджрд╛рд░ рдСрдкрд░реЗрд╢рди рд╣реИред рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

In [25]: x.max()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/wonkabar/data1/builds/betadrizzle/<ipython console> in <module>()

TypeError: cannot perform reduce with flexible type

In [26]: x.min()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/wonkabar/data1/builds/betadrizzle/<ipython console> in <module>()

TypeError: cannot perform reduce with flexible type

In [27]:

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

рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ argmax рдФрд░ argmin рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ maximum.reduce рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

.max рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, argmax рдХреЗрд╡рд▓ рдПрдХ axis рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдХреНрд╖ рдлреЗрд░рдмрджрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА , рдФрд░ рд╕рдВрднрд╡рддрдГ рдЙрди рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдирдХрд▓ рдХрд░рдирд╛ред keepdims рдФрд░ out рднреА max рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди argmax ред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ? 'рдПрд╕', 'рдпреВ' рдФрд░ 'рд╡реА'?

рдХреНрдпрд╛ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдПрдирдЖрд░ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ 9 рдпрд╣рд╛рдБ ?

In [1]: np.array([['dd', 'de', 'cc'], ['ae', 'be', 'hf']]).max(axis=0)
TypeError: cannot perform reduce with flexible type

@jondo рдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП (рд▓рдЧрднрдЧ 4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд▓реЗрдХрд┐рди рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рд▓рд╛рдпрдХ), рд╣рд╛рдБред

рдбреЙ рдлреЗрд▓реНрдбрдореИрди рдХреА рд╢рд┐рдХрд╛рдпрдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╡реНрдпрдХреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рд╡рд╣ рдХрд╣рддреЗ рд╣реИрдВ, "рдЪреВрдВрдХрд┐ NumPy рдХреА .min() рдФрд░ .max() рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдФрд░ Python рдХреЗ min() рдФрд░ max() рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдИ рднреА рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ NumPy рдХреЗ .min() рдФрд░ .max() рддрд░реАрдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ [...]"

рдпрд╣рд╛рдБ рдПрдХ рджреГрд╖реНрдЯрд╛рдВрдд рд╣реИ:

import numpy as np

arr_str = np.array(["I'm", "Defying", "Gravity"]) #A wickedly simple array of strings

print(arr_str.max()) #raises "TypeError: cannot perform reduce with flexible type"
#Interestingly, when I just used a native Python list, the error for this line was: "AttributeError: 'list' object has no attribute 'max'"

print(max(arr_str)) #does not raise any kind of error and returns "I'm" no matter where it is in the array of strings above

#This code works as expected
arr_num = np.array([1,2,3,-1])
print(max(arr_num))

рдбреЙ. рдлреЗрд▓реНрдбрдореИрди рдХрд╛ рдореБрджреНрджрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛, рддрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрддрдо () рдХреЗ рдмрдЬрд╛рдп .max () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд▓рдЪреАрд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рд╣рдо рд╕рд░рдгреА рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрдзрд┐рдХрддрдо() рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ @charris рдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛, рдХрд┐ .argmax() рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рд╣реЛрдЧрд╛: рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдЕрдзрд┐рдХрддрдо (рд╕реВрдЪреА) рдпрд╛ list.argmax рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд┐ рдпрд╣ рдзреБрд░реА рдХреЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рдбрд╛рдЗрд╡рд┐рдВрдЧ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдЬреЛ @jaimefrio рд▓рд╛рдпрд╛?

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

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

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

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

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

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

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