对数组的数组使用numpy.vectorize

kx1ctssn  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(102)

我如何应用numpy.vectorize来使它作用于一个数组的数组,其中每个数组都是函数的输入?例如下面,我正在寻找返回值列表[4,90]:

import numpy as np
import operator
import functools

vidx = np.vectorize(operator.index)
functools.partial(vidx,0)([[4,3,2],[90,7,6]])

vidx = np.vectorize(functools.partial(operator.index,0))
vidx([[4,3,2],[90,7,6]])

这些设置似乎都没有正确地解释意图。我知道你可以很容易地用列表解析来做到这一点,只是想把这个想法扩展到这种类型的自定义函数。

7tofc5zh

7tofc5zh1#

尝试通过函数定义第一个元素,创建一个2D数组,并将函数应用于第一个轴沿着的每个子数组。就像这样:

import numpy as np

def first_element(arr):
    return arr[0]

arr = np.array([[4, 3, 2], [90, 7, 6]])
result = np.zeros(arr.shape[0], dtype=int)

for i in range(arr.shape[0]):
    result[i] = first_element(arr[i])

print(result)

输出:[4 90]

相关问题