簡體   English   中英

numpy:二維數組,在第一個索引上運行時出錯

[英]Numpy: 2d array, error when running over the first index

嘗試為100x100 2d數組分配特定值時遇到問題。 我希望它在所有地方都為零,但沿着兩個部分除外:第一行從第25行到第75行,最后一列從第25行到第75行。

我嘗試使用“:循環”來執行此操作,我的意思是:

my_array[0][25:75] = 1.
my_array[25:75][99] = 1.

但是第二行向我返回錯誤:

IndexError: index 99 is out of bounds for axis 0 with size 50

好像是先切割長度為50(75-25)的陣列,然后分配長度。

當然,我可以得到想要的東西:

for x in xrange(25,75):
    my_array[x][-1] = 1.

但是,出於好奇,我如何通過:操作完成它?

將兩個數組切片放在相同的方括號內。 使問題更小,因此更容易顯示:

>>> my_array = np.zeros((10,10))
>>> my_array[0, 2:7] = 1
>>> my_array[2:7, -1] = 1
>>> my_array
array([[ 0.,  0.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])

現在所發生的事情是,你要求這個數組的50排片,然后在[99]正在試圖獲得的第99排,但只有50。

暫無
暫無

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

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