在 NumPy 中,你可能会遇到形状为 (R, 1) 的数组和(R,)。虽然这些形状可能看起来相似,但它们代表了基础数据的不同解释。
形状为 (R, 1) 的数组是具有 R 行和单列的 2D 数组。它本质上是一个列向量,可以将其视为 R 元素的列表。相反,形状为 (R,) 的数组是具有 R 个元素的一维数组。它实际上是一个列表,每个元素代表一个标量值。
NumPy 的设计选择不利于 (R, 1) 1)矩阵乘法的形状源于其固有的灵活性。允许使用两种形状使程序员能够为其特定任务选择最合适的表示形式。虽然 (R, 1) 形状更适合矩阵乘法,但 (R,) 形状在其他情况下可能更可取,例如在处理向量或标量值列表时。
在不显式重塑数组的情况下,还有其他方法可以执行矩阵乘法。例如,使用 np.expand_dims() 函数可以实现所需的形状变换。或者,您可以利用广播,NumPy 在某些条件下会自动执行广播。例如,在表达式 numpy.dot(M[:,0], numpy.ones((1, R))) 中,广播会自动将 numpy.ones((1, R)) 扩展为 numpy.ones((R , 1)).
以上是NumPy 数组:形状 (R, 1) 和 (R,) 之间有什么区别以及它如何影响矩阵乘法?的详细内容。更多信息请关注PHP中文网其他相关文章!