【发布时间】:2021-05-25 15:31:50
【问题描述】:
我正在尝试编写以下代码:
def ordering(n):
eqvec=np.zeros(n)
bvec=[]
for i in range(n):
eqvec[i]=orderingeq(n,i+1)
while eqvec:
index_max=np.argmax(eqvec)
bvec.append(index_max)
eqvec.remove(index_max)
return bvec
在这段代码中,我有两个向量。第一个向量“eqvec”包含一些由等式“orderingeq”确定的数字。从这一点开始,我需要用向量“eqvec”的最大值的索引值填充向量“bvec”。从我在网上发现的情况来看,这应该可以工作,或者至少我还没有找到另一种方法来做到这一点。但我收到与“while eqvec:”行相对应的错误消息。
具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()。
有人可以告诉我我的代码有什么问题,或者告诉我应该怎么做吗?
【问题讨论】:
-
使用列表而不是 numpy 数组,它会起作用。
-
我想是的,据我了解,我应该写'while eqvec.any():'。现在我不再收到错误了
标签: python arrays numpy while-loop