为了账号安全,请及时绑定邮箱和手机立即绑定

索引超出范围——numpy 数组

索引超出范围——numpy 数组

四季花海 2022-12-06 16:42:11
这段代码有什么问题?我不能简单地将 的第一列切片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个赞

当您定义Xdata[:,0]时,您正在创建一个一维数组。由于您的初始数组data是二维的,因此您可以将其视为仅从所有行中选择 column-index-0-values。这意味着形状中X只有 1 个元素。

所以X.shape[0]存在(它是3),但X.shape[1]不存在,导致 IndexError。


查看完整回答
反对 回复 2022-12-06
?
慕妹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


查看完整回答
反对 回复 2022-12-06
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信