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

标签 python arrays list numpy slice

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

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

例如,此函数将返回 dummy_function(2) = 18dummy_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/

相关文章:

python - 动态创建的选项卡-选项卡关闭时销毁对象

arrays - 减去数组中指定索引处的元素

list - F# 使用 cons (::) 而不是 concat (@) 构建列表时折叠

python - 如何按顺序组合三个不同大小的列表 Python

python - 一种在 Python 中连接字符串中的字符列表的优雅方法

Python 执行多个任务

python - keras 使用激活层而不是激活参数

python - Jinja 忽略 HTML 注释

php - 如何组合两个函数并返回一个数组?

c - 如何从字符串中读取以空格分隔的整数