作者nicha115 (cha)
看板Python
標題[問題] numpy frompyfunc用法
時間Sat Nov 28 10:10:15 2020
板上高手好,
我目前想用numpy的frompyfunc對np.array進行廣播
但是我是要對“每一列”進行計算(不是對每一列的每個值)
例如我要讓我輸入的引數是每一列假設3個数,然後輸出一個list
def test_fn(a,b,c):
return a+1, b+2, c+5
input_array = np.array([[1,3,5],
[2,6,8]])
output = np.frompyfunc(test_fn, 3, 1)
然後我這邊好像只能用這樣寫法:
outvalue = output(input_array[:, 0], input_array[:, 1], input_array[:, 2])
也就是我需要分別將a,b,c三個引數分別輸入,
但我想知道有沒有寫法是我只要輸入input_array變數就可以的?
不然如果一列50個引數我不就要輸入50次?
感謝大家~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.238.92 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1606529417.A.CC5.html
※ 編輯: nicha115 (223.137.238.92 臺灣), 11/28/2020 10:11:21
推 TitanEric: 可以拆開 *array傳function 11/28 12:00
→ fiorentino: outvalue = output(*input_array) 11/28 19:46
→ fiorentino: 你看這樣可不可以 11/28 19:46
→ nicha115: 但是這樣是把array拆成n列,也就是n個引數而不是50引數 11/28 20:35
→ nicha115: 我好像是應該用numpy.apply_along_axis才對的樣子... 11/28 20:37
推 art1: 似乎沒辦法直接解兩層出來,最多只能用 *input_array[0] 11/28 21:25
噓 fiorentino: def test_fn(a): 11/29 14:20
→ fiorentino: return a[0]+1, a[1]+2, a[2]+5 11/29 14:20
→ fiorentino: outvalue = output(input_array) 11/29 14:21
推 fiorentino: 不好意思好像不小心按到噓了 11/29 18:05