【发布时间】:2022-01-05 15:31:16
【问题描述】:
我正在做 numpy 基础知识,我正在尝试做一些矩阵乘法,我的数组 A 是 3 行 x 3 列,而我的数组 x 是 1 行 x 3 列(或者我想),我期待它给出一个错误,因为 A 的列数需要与 x 的行数相同,但它们不是因为 3 不是 1,但它给出了 [24 15 29],没有给出错误。所以,我很困惑一维数组是否有 1 行和 n 列,反之亦然。
import numpy as np
A = np.array([[4, 2, 1],[1, 3, 1],[2, 3, 6]])
x = np.array([4, 3, 2])
print(np.matmul(A, x))
【问题讨论】:
-
matmul(等效于dot)对一维数组有一个特殊的规则。所以 (n,3) 和 (3,) 很好,产生 (n,)