繁体   English   中英

使用索引列表对数组进行切片

[英]Slice an array with a list of indices

假设a = array([1,2,3])b = array([4,5,6]) 我想使用列表对ab进行切片并对每个部分执行一些操作,然后将结果返回到数组。 例如,我提出了一个演示用法的虚拟 function:

def dummy_function(i):
  A = sum(a[:i])
  B = sum(cumsum(b[i:]))
  return A*B

例如,这个 function 将返回dummy_function(2) = 18dummy_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM