numpy,在给定索引列表的情况下,是否可以对矩阵(二维数组)的特定元素求和?

ailauli69

经过一些研究,我无法成功使用Numpy的函数来解决我的问题。我在这里给出一个非常基本的示例(我所针对的矩阵和索引列表一样庞大,这就是为什么我使用Numpy的原因):

我有一个矩阵

A = np.array([1,2,3,4],[5,6,7,8])

以及索引列表

L = [ 2, 3, 0 ]

我需要从中计算:

A[2][3] + A[3][0]

所以,更正式地说,我需要计算列表A[i][i+1]for的总和iL

而且我需要尽快执行(因此,不允许循环

最好的祝福

艾美

柴可夫斯基

我能想到的最好的办法是重塑L使用np.repeat摆在首位

L = tuple(np.repeat(L,2)[1:-1].reshape(-1,2).T)

然后,使用此新功能L,您可以直接进行求和

np.sum(A[L])

完整的例子

A = np.array([[1,2,3,4],[5,6,7,8]])
L = np.array([1,1,0])

L = tuple(np.repeat(L,2)[1:-1].reshape(-1,2).T)
np.sum(A[L])

一个更大的例子

A = np.random.randint(0,100,size=(929,929))
L = np.random.randint(0,928,size=928)

L = tuple(np.repeat(L,2)[1:-1].reshape(-1,2).T)
np.sum(A[L])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pytorch 在给定条件的情况下计算特定行的二维张量的平均值

是否可以在没有两个循环的情况下遍历二维数组?

在给定矩阵列表的情况下,将它们求和但忽略矩阵的某些行

在python中不使用sum函数的情况下对二维列表的行求和

在给定多个对象键的情况下获取数组对象元素的索引

在给定布尔索引的情况下重新调整 numpy 数组中的列

如何在不使用numpy的情况下获取所有对角二维列表?

在没有for循环的情况下从二维Numpy数组中删除nan条目

我可以在不使用 Java 循环的情况下填充二维数组吗?

为什么二维数组的情况下可以从int **转换为int *,而指针数组的情况下不行

如何在python中使用numpy获取二维矩阵(列表)中具有最多给定元素的列和行的索引

访问不在给定索引列表中的NumPy数组元素

如何检查特定索引位置的二维数组内是否有元素?

Numpy:求和由二维布尔数组的行索引的一维数组

如何在不循环整个数组的情况下从二维数组中获取元素?

numpy:二维数组矩阵的大小?

在给定相同索引的情况下,检查两个数组以查找匹配元素,并返回匹配数

是否可以通过另一个二维数组逐行索引二维数组而无需在 NumPy 中循环?

在给定沿每个轴的索引向量的情况下获取矩阵值

如何在不使用 numpy 的情况下将数据提取到二维数组中

生成二维 NumPy 数组的索引

索引二维数组/列表

在第二维为常数的情况下制作动态二维数组会很愚蠢吗?

是否可以在不使用Numpy或zip的情况下检查给定列表中的丘陵或山谷的功能?

二维数组的numpy列表乘法

在给定常量类和唯一ID的情况下获取元素的索引

带有numpy的Python:如何根据特定索引从二维数组的每一行中删除元素

如何在不知道数组大小的情况下复制二维数组

如何在给定元组列表的情况下创建倒排索引?