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