python - numpy 数组求和函数

标签 python arrays numpy sum

假设我有两个一维数组,a 和 b,长度分别为 n+1 和 m+1。

我希望 c 是与 b 长度相同的数组,其元素等于所有 a 元素之和的 b 次方的正弦值。下面用伪代码编写。

c = sum(sine(a[0:n] ** b[0])), sum(sine(a[0:n] ** b[1])),
  ... sum(sine(a[0:n] ** b[m])))

有没有一种方法可以在不使用循环的情况下完成此任务?

(在编程方面有些缺乏经验,希望我的问题有意义。)

一个函数:

def function(a, b):
    c = np.sum(np.sin(a ** b))
    return c

最佳答案

您可以使用 numpy 广播对其进行矢量化:

np.sin(np.sum(a ** b[:,None], axis=1))
<小时/>
import numpy as np
a = np.arange(4)
b = np.arange(3)

np.sin(np.sum(a ** b[:,None], axis=1))
#array([-0.7568025 , -0.2794155 ,  0.99060736])

np.sin(np.sum(a ** b[0]))
#-0.7568024953079282

np.sin(np.sum(a ** b[1]))
#-0.27941549819892586

关于python - numpy 数组求和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429865/

相关文章:

python - 如何在 python 中实现 EM-GMM?

python - 书上代码示例的不同结果 : Python for Data Analysis

python - 在 pandas 中用 group by 取最后 n 个元素的平均值

c# - 初始化引用类型数组的简单方法?

c - MIPS32字数组

python - 在python中的numpy数组中查找第一个有条件的元素的索引

python - 将文本文件中的数据转换为数据帧

python - 使用 Python Twisted 进行 UDP 流量控制

Javascript 多维数组键值对

python - 如何在 3D 曲面图中绘制 x、y、z 的 numpy 数组?