我正在尝试根据boolarr
数组的内容来修改reducedMatrix
numpy数组。
如果boolarr
不是0或-1,应该将reducedMatrix
的布尔值更改为False。
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]]
我在做什么错了?
答案 0 :(得分:1)
您需要更改
boolarr[y,x] == False
进入
boolarr[y,x] = False
答案 1 :(得分:1)
只需在一条矢量化行中创建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]])
:
0