python - 使用 Numpy 进行矩阵运算的更简单方法

标签 python arrays algorithm numpy matrix

我有这样的代码:

x = 0
for i in range(100):
    for j in range(100):
        x += f[i, 0] * f[0, j]

这里 f 是一个二维数组。现在,numpy 中是否有一个函数可以用来在不使用 for 循环的情况下执行此操作?

最佳答案

您可以分别对第一列和第一行求和,然后取积:

res = f[:, 0].sum() * f[0, :].sum()

这里有一些代码可以检查是否满足您的期望:

np.random.seed(0)

f = np.random.random((100, 100))

x = 0
for i in range(100):
    for j in range(100):
        x += f[i, 0] * f[0,j]

res = f[:, 0].sum() * f[0, :].sum()

assert np.isclose(x, res)

关于python - 使用 Numpy 进行矩阵运算的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918387/

相关文章:

javascript - 当条件和字段名称相同时,如何不允许项目数组中出现重复项?

python - 当间隔的位置由索引列表定义时,如何对 pandas 数据框中的行间隔进行切片和应用函数?

javascript - 从另一个 JSON 对象创建 JSON 对象

python - Python中的三角波形数组

c# - 如何在 C# 中将字典(以数组作为值)转换为列表

python - 根到叶算法错误

c - 在 C 中抓取无符号字符中的位 1 和 6、以及 2 到 5

c - C中的算法

python - 二分查找元素的最低索引

python - 如何在 Python 中将 -1/(-343)^(1/3) 计算为 1/7?