为何Numpy中数组b的shape为(2,)而非预期的(1,2)?
NumPy数组shape疑问解析
示例代码
import numpy as np A = np.array([ [-1, 3], [3, 2] ], dtype=np.dtype(float)) b = np.array([7, 1], dtype=np.dtype(float)) print(f"Shape of A: {A.shape}") print(f"Shape of b: {b.shape}")
运行输出
Shape of A: (2, 2) Shape of b: (2,)
疑问
我原本预期数组b的shape为(1,2)(即1行2列),为何实际结果是(2,)?
解答
NumPy中(2,)代表一维数组,只有一个维度,元素总数为2;而(1,2)是二维数组,包含1个长度为2的子数组。
你创建b时传入的是一维列表[7,1],NumPy会默认生成一维数组。如果要得到(1,2)的二维数组,有两种实用方法:
- 给输入列表嵌套一层括号,构造二维结构:
b = np.array([[7, 1]], dtype=np.dtype(float)) - 用
reshape方法修改已有数组的形状:b = np.array([7, 1], dtype=np.dtype(float)).reshape(1,2)
内容的提问来源于stack exchange,提问作者user1965449
相关产品推荐
相关产品推荐

