You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

numpy数组中行向量与列向量的维度差异问题咨询

NumPy中行/列向量维度差异的原因说明

你的操作完全没有错误,这个现象是NumPy数组的轴设计规则导致的:

  • 你定义的b = np.array([1,2,3])是一维数组,本身不具备「行/列」的方向属性,只是长度为3的线性序列。它只有1个轴(轴0),所以np.ndim返回1,形状返回(3,),很多场景下会被默认适配为行向量参与运算,但本质上不属于二维结构的行向量。
  • 你定义的c = np.array([[1], [2], [3]])是二维数组,两层嵌套中括号代表有两个轴:轴0是行方向(长度3),轴1是列方向(长度1),所以np.ndim返回2,形状返回(3,1),这是标准的二维结构列向量表示。

如果你需要严格对应的二维结构行向量,可以这么定义:

row_vec = np.array([[1,2,3]])
print(np.ndim(row_vec)) # 返回2
print(np.shape(row_vec)) # 返回(1,3)

日常开发中可以用以下方法快速做维度转换:

  • 一维数组转标准列向量:b.reshape(-1, 1) 或者 b[:, np.newaxis]
  • 一维数组转标准行向量:b.reshape(1, -1) 或者 b[np.newaxis, :]

测试代码验证

# 一维数组测试
import numpy as np
b = np.array([1,2,3])
print(b)
print(np.ndim(b))
print(np.shape(b)) 
print(np.size(b))

'''
Output: 
[1 2 3]
1
(3,)
3
'''

# 二维列向量测试
c= np.array([[1], [2], [3]])
print(c)
print(np.ndim(c))
print(np.shape(c))
print(np.size(c))

'''
Output: 
[[1]
 [2]
 [3]]
2
(3, 1)
3
'''

内容的提问来源于stack exchange,提问作者blue_25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:36:02