这段代码有什么问题?我不能简单地将 的第一列切片data并将其分配给 X 吗?import numpy as npdata =np.array([[5.2, -1.5], [-4.1, 3], [-12.3, 55]])print(data)X = data[:,0]print('shape of X ', X.shape)print('X.shape[0] ',X.shape[0])print('X.shape[1] ',X.shape[1])它抛出以下消息:shape of X (3,)X.shape[0] 3Traceback (most recent call last): File "shape.py", line 7, in <module> print('X.shape[1] ',X.shape[1])IndexError: tuple index out of range
2 回答
烙印99
TA贡献1829条经验 获得超13个赞
当您定义X
为data[:,0]
时,您正在创建一个一维数组。由于您的初始数组data
是二维的,因此您可以将其视为仅从所有行中选择 column-index-0-values。这意味着形状中X
只有 1 个元素。
所以X.shape[0]
存在(它是3
),但X.shape[1]
不存在,导致 IndexError。
慕妹3146593
TA贡献1820条经验 获得超9个赞
请注意,X包含array([ 5.2, -4.1, -12.3])
,因此它是一维 数组。
从形状上也可以看出:
shape of X (3,)
那是:
第一个也是唯一的维度是3,
没有其他维度。
因此,如果您引用X.shape[1]
(一个不存在的维度),您会得到 IndexError: tuple index out of range
.
没有其他办法了。
另一种方法:如果你想要一个二维数组,你可以运行:
X2 = data[:, [0]]
然后:
X2.shape
是(3, 1)
,X2.shape[0]
是3
,X2.shape[1]
是1
。
添加回答
举报
0/150
提交
取消