[英]numpy array: IndexError: too many indices for array
這有效:
>>> a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> a[: , 2]
array([ 3, 7, 11])
事實並非如此
>>> a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11]])
>>> a[:,2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: too many indices for array
為什么這樣 ?
第一個陣列具有形狀(3,4),第二個陣列具有形狀(3,)。 第二個數組缺少第二個維度。 np.array無法使用此輸入來構造矩陣(或類似延長數組的數組)。 它只能制作一系列列表。
>>> a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> print(a)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
>>> print(type(a))
<class 'numpy.ndarray'>
>>> b = np.array([[1,2,3,4], [5,6,7,8], [9,10,11]])
>>> print(b)
[list([1, 2, 3, 4]) list([5, 6, 7, 8]) list([9, 10, 11])]
>>> print(type(b))
<class 'numpy.ndarray'>
因此它們都是Numpy數組,但只有第一個可以被視為具有兩個維度的矩陣。
很容易看出問題所在。 嘗試,
>>> a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
>>> a.shape
接着
>>>a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11]])
>>> a.shape
並且你會自己看到問題,如果是兩個,形狀是(3,)。因此索引太多了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.