当前位置 : 主页 > 网络安全 > 测试自动化 >

在numpy中使用1d vs 2d向量的性能/标准

来源:互联网 收集:自由互联 发布时间:2021-06-22
在NumPy中是否存在将向量表示为1d或2d ndarray的标准做法?我正在从代表向量的MATLAB转向2d数组. 根据我的经验,1D是矢量numpy的常态.将n个元素的矢量保持为形状(1,n)或(n,1)的2D数组的唯一理由
在NumPy中是否存在将向量表示为1d或2d ndarray的标准做法?我正在从代表向量的MATLAB转向2d数组. 根据我的经验,1D是矢量numpy的常态.将n个元素的矢量保持为形状(1,n)或(n,1)的2D数组的唯一理由是在线性代数上下文中,您希望保持行和列向量的不同.当EitanT暗示他现在删除的答案时,你可能会想要使用numpy的矩阵类型,除了单个元素访问之外,它保持返回的2D形状,例如,如果a具有形状(m,n),则a [0]具有形状( n,)用于类型ndarray,但是对于类型矩阵的形状(1,n),尽管在这两种情况下[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)

Numpy将自动重塑您的1D向量以形成(1,n)broadcasting它用于涉及2D阵列的操作.

网友评论