import numpy as np
import random
my_matrix = np.random.rand(4)
print(my_matrix)
my_boolean_array = my_matrix < 0.5
print(my_boolean_array)
my_matrix[my_boolean_array] = [[0, 0]] # two dimensions array! not a single value. This will not work
print(my_matrix)
我假设你得到的错误是因为你所有的数组都是二维的。我建议您尝试使用
numpy.putmask(matrix, mask, new_matrix_values)
比如说
问题是您正在使用掩码分配什么。不知道g1、g2、g3和g4内部是什么,很难理解您正在做什么,但可能
是一个二维向量。相反,您需要指定一个值。例如,如果您以这种方式更改作业,它可能会起作用:
或者,如果它不起作用:
但是在做任何事情之前,你应该了解你输入的内容(
tau*(g1+g2-g3+g4)
)我猜g1、g2、g3和g4可能是二维向量
通过这个例子,我可以重现您的错误:
试着打印里面的值
下面的方法可能也适用
注意最后一个
[mask]
相关问题 更多 >
编程相关推荐