簡體   English   中英

在python中切片2D numpy數組

[英]Slicing a 2D numpy array in python

下面的代碼有什么問題?

arr=numpy.empty((2,2))
arr[0:,0:]=1
print(arr[1:,1:])
arr=([ [1, 2, 3], [ 4, 5, 6], [ 7, 8, 9] ])
print(arr[1:2, 1])

我收到以下錯誤,無法切片數組(第五行)。 請幫我解決一下這個。

TypeError:列表索引必須是整數,而不是元組。

您將名稱arr重新綁定為指向第四行中的Python list ,因此您的問題標題不太合適:您沒有對2d numpy數組進行切片。 list不能像numpy數組那樣被切片。 相比:

>>> arr= numpy.array([ [1, 2, 3], [ 4, 5, 6], [ 7, 8, 9] ])
>>> arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> arr[1:2, 1]
array([5])

>>> arr.tolist()
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> arr.tolist()[1:2, 1]
Traceback (most recent call last):
  File "<ipython-input-23-4a441cf2eaa9>", line 1, in <module>
    arr.tolist()[1:2, 1]
TypeError: list indices must be integers, not tuple

arr=([ [1, 2, 3], [ 4, 5, 6], [ 7, 8, 9] ])python list ,而不是numpy array

您將arr arr=([ [1, 2, 3], [ 4, 5, 6], [ 7, 8, 9] ])重新分配給列表。

使它成為一個numpy數組:

In [37]: arr  = numpy.array([ [1, 2, 3], [ 4, 5, 6], [ 7, 8, 9] ])

In [38]: arr
Out[38]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

In [39]: (arr[1:2, 1])
Out[39]: array([5])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM