blu*_*cat 5 python matlab numpy linear-algebra
是否有将向量表示为 NumPy 中的一维或二维 ndarray 的标准做法?我正在从将向量表示为二维数组的 MATLAB 转移。
根据我的经验,一维是 numpy 中向量的标准。将元素向量保留n为二维形状数组(1, n)或(n, 1)在线性代数上下文中的唯一充分理由,您希望在其中保持行向量和列向量的差异。正如 EitanT 暗示他现在已删除的答案,您可能会想要使用 numpy 的matrix类型,它保留返回的 2D 形状(除了单个元素访问),例如,如果a具有形状(m, n),则a[0]具有(n,)类型的形状ndarray,但(1, n)类型的 形状matrix,尽管a[0, 0]返回标量在这两种情况下。
如果您坚持使用形状 的 1D 向量(n,),则可以针对需要 2D 形状的特定操作动态重塑形状:
a.reshape(-1, 1) # shape (n, 1)
a[:, None] # shape (n, 1)
a.reshape(1, -1) # shape (1, n)
a[None, :] # shape (1, n)
Run Code Online (Sandbox Code Playgroud)
(1, n)Numpy 会在广播涉及 2D 数组的操作时自动重塑您的 1D 向量。
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |