[英]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.