假设a = array([1,2,3])
和b = array([4,5,6])
。我想使用列表对 a
和 b
进行切片,并对每个部分执行一些操作,然后将结果返回到数组。例如,我提出了一个演示用法的虚拟函数:
def dummy_function(i):
A = sum(a[:i])
B = sum(cumsum(b[i:]))
return A*B
例如,此函数将返回 dummy_function(2) = 18
和 dummy_function(1) = 16
但我想使用列表作为其评估它论据:
>>> dummy_function([2,1])
array([18,16])
相反,我得到了IndexError:无效切片
。我不想使用循环来迭代 [2,1]
的元素,因为我相信它可以更有效地完成。我怎样才能做我想做的事?
最佳答案
我不知道我是否正确理解了你想要什么,但这对我有用:
import numpy as np
def func(i):
a = np.array([1,2,3])
b = np.array([4,5,6])
A = np.sum(a[:i])
B = np.cumsum(b[i:])
C = A*B
return C[0]
print(func(2))
结果是18
如果您想给“func”一个列表作为参数,那么您可能应该循环遍历列表元素。
关于python - 使用索引列表对数组进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58660455/