[英]Slice an array with a list of indices
假设a = array([1,2,3])
和b = array([4,5,6])
。 我想使用列表对a
和b
进行切片并对每个部分执行一些操作,然后将结果返回到数组。 例如,我提出了一个演示用法的虚拟 function:
def dummy_function(i):
A = sum(a[:i])
B = sum(cumsum(b[i:]))
return A*B
例如,这个 function 将返回dummy_function(2) = 18
和dummy_function(1) = 16
但我想使用列表作为参数来评估它:
>>> dummy_function([2,1])
array([18,16])
相反,我得到IndexError: invalid slice
。 我不想使用循环来遍历[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”一个列表作为参数,那么你可能应该遍历列表元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.