繁体   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