[問題] numpy frompyfunc用法

作者: nicha115 (cha)   2020-11-28 10:10:15
板上高手好,
我目前想用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次?
感謝大家~
作者: TitanEric (泰坦)   2020-11-28 12:00:00
可以拆開 *array傳function
作者: fiorentino (眠)   2020-11-28 19:46:00
outvalue = output(*input_array)你看這樣可不可以
作者: nicha115 (cha)   2020-11-28 20:35:00
但是這樣是把array拆成n列,也就是n個引數而不是50引數我好像是應該用numpy.apply_along_axis才對的樣子...
作者: art1 (人,原來不是人)   2020-11-28 21:25:00
似乎沒辦法直接解兩層出來,最多只能用 *input_array[0]
作者: fiorentino (眠)   2020-11-29 14:20:00
def test_fn(a):return a[0]+1, a[1]+2, a[2]+5outvalue = output(input_array)

Links booklink

Contact Us: admin [ a t ] ucptt.com