這段代碼有什么問題?我不能簡單地將 的第一列切片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
提交
取消