Numpy: .max () ๋ฐ .min ()์€ 'S'๋ฐ 'U'์œ ํ˜•์˜ ๋ฐฐ์—ด์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (Trac # 1316).

์— ๋งŒ๋“  2012๋…„ 10์›” 19์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

_Original ticket http://projects.scipy.org/numpy/ticket/1316 on 2009-12-07 by @mdboom , assigned to unknown._

์ด๊ฒƒ์€ ํ˜„๋ช…ํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์ž‘๋™ํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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]:
00 - Bug Other

๋ชจ๋“  4 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. argmax ๋ฐ argmin ์ž‘๋™ํ•˜๋ฉฐ maximum.reduce ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜์žˆ๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.max ๋Š” ์ถ•์˜ ํŠœํ”Œ์„ ์ทจํ•  ์ˆ˜ ์žˆ๊ณ , argmax ๋Š” ๋‹จ์ผ axis ๋งŒ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์œผ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์— ์ž‘๋™ํ•˜๋„๋กํ•˜๋ ค๋ฉด ๋งŽ์€ ์ถ• ์…”ํ”Œ ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. , ๋ณต์‚ฌํ•˜์—ฌ ํ•ด๋‹น ์ถ•์„ ํ•ฉ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. keepdims ๋ฐ out ๋„ max ์˜ ์„œ๋ช…์— ์žˆ์ง€๋งŒ argmax ์˜ ์„œ๋ช…์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์œ ํ˜•์ด ๊ด€๋ จ๋ฉ๋‹ˆ๊นŒ? 'S', 'U', 'V'?

์ด๊ฒƒ์€ nr ์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

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

@jondo ์˜ ์งˆ๋ฌธ์— (๊ฑฐ์˜ 4 ๋…„ ์ „์ด ์‹œ์ ์—์„œ ์–ธ๊ธ‰ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Œ), ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

Feldman ๋ฐ•์‚ฌ์˜ ๋ถˆ๋งŒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์žฅ ์ž˜ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” "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))

Feldman ๋ฐ•์‚ฌ์˜ ๋ฌธ์ œ๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ๊ด€ํ•œ ๊ฒƒ์ด๋ฉฐ max () ๋Œ€์‹  .max ()๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์œ ์—ฐํ•œ ์œ ํ˜•์— ๋Œ€ํ•œ ์šฐ๋ ค๋กœ ํ™•์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ฐฐ์—ด์„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•  ๋•Œ max ()๊ฐ€ ์ž˜ ์ž‘๋™ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์œ„์˜ ์˜ˆ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@charris ๊ฐ€ .argmax ()๊ฐ€ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋Œ€ํ•œ ๋‚ด ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. @jaimefrio๊ฐ€ ์ œ๊ธฐ ํ•œ ์ถ• ๋ฌธ์ œ๋ฅผ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰