簡體   English   中英

無法修改numpy二維數組

[英]Cannot modify numpy 2d array

我正在嘗試根據reducedMatrix數組的內容修改boolarr numpy數組。 它應該在的布爾值更改boolarr為False如果reducedMatrix不是0或-1。

reducedMatrix = np.load(reducedweightmatrix)

boolarr = np.ones(shape=(len(reducedMatrix),len(reducedMatrix)),dtype="bool")

for y,yelement in enumerate(reducedMatrix):
    for x,xelement in enumerate(yelement):
        if(xelement != -1 and xelement != 0):
            print(x)
            print(y)
            print("\n")
            boolarr[y,x] == False

print(reducedMatrix)
print(boolarr)

日志繼續顯示以下內容:

[[-1  5  5  0  0]
 [ 5 -1  0  0  0]
 [ 5  0 -1  0  5]
 [ 0  0  0 -1  0]
 [ 0  0  5  0 -1]]
[[ True  True  True  True  True]
 [ True  True  True  True  True]
 [ True  True  True  True  True]
 [ True  True  True  True  True]
 [ True  True  True  True  True]]

我究竟做錯了什么?

你需要改變

boolarr[y,x] == False

進入

boolarr[y,x] = False

當您只需要在一條矢量化行中創建boolarray時,就boolarray逐個編輯boolarray

boolarray = (reducedMatrix == 0) | (reducedMatrix == -1)
# array([[ True, False, False,  True,  True],
#        [False,  True,  True,  True,  True],
#        [False,  True,  True,  True, False],
#        [ True,  True,  True,  True,  True],
#        [ True,  True, False,  True,  True]])

暫無
暫無

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

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