遍历 numpy 数组行

Iterating through the numpy array rows

我正在尝试获取此对比矩阵的每一行,执行分母变量中定义的操作,将它们相加,然后除以行数。当我尝试做这样的事情时,我得到一个“无效的语法错误”(使用 python 3)。这个问题来自 fMRI 单变量分析上下文。 X 是预定义的,您可以忽略它。我只是想用分母变量中的矩阵做点积。

X = simulate_two_predictors(N=350, shift=30, TR=2)

contrast_matrix = np.array([

[0, 1, 0],
[0, 0, 1],
[0, 1, -1]

])

for i in range(contrast_matrix.shape[0]):
     denominator = (contrast_matrix[i,:] @ inv(X.T @ X) @ 
     (contrast_matrix[i,:].T))
     return contrast_matrix.size / denominator

你能帮我吗?我是新手

由于我不知道 X simulate_two_predictors 的输出结果如何,我做了一些假设。

如果我错了请纠正我,return 关键字仅在您 return 来自函数的情况下才有效。

import numpy as np

contrast_matrix = np.array([[0, 1, 0],
                            [0, 0, 1],
                            [0, 1, -1]])

X = simulate_two_predictors(N=350, shift=30, TR=2)

for i in range(contrast_matrix.shape[0]):

    # do something here
    denominator = (contrast_matrix[i,:]) @ (np.linalg.inv(X.T @ X) @ (contrast_matrix[i,:].T))

    # reassign value
    contrast_matrix[i,:] = (contrast_matrix.size / denominator)


print(contrast_matrix)