[问题] 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