繁体   English   中英

python数组的真值..模棱两可的错误

[英]python the-truth-value-of-an-array.. ambigious error

我正在尝试使用numpy乘以2个向量并进行比较,出于某种原因它给了我错误..数据来自我发现的CSV文件

尝试对数组进行索引时,包含多个元素的数组的真值不明确

以及更多这种类型的情况,但实际上与我的情况不同。我的代码:

import sys
import numpy as np
data = np.loadtxt(sys.argv[1],  delimiter = ',')
X = data[:, 1:]
Y = data[:, 0]
   #argv[1] is mnist_train_1vs7vs8.csv
wMatrix=(3,len(X[0]))
np.zeros(wMatrix)
for i in range(0,len(Y)):
        maxWx=0
        for wIndex in range (0,1):
            if ( np.dot(wMatrix[wIndex] ,X[i]) < np.dot(wMatrix[wIndex+1],X[i]) ):
                maxWx=wIndex+1

它给我错误:

ValueError: The truth value of an array with more than one element is   
ambiguous. 
Use a.any() or a.all()`

我只是想将一个向量与相同大小的向量相乘,我不明白为什么它不会让我..帮助..?

如果按照@kindall的建议进行操作并打印出np.dot(wMatrix[wIndex] ,X[i]) < np.dot(wMatrix[wIndex+1],X[i])您会发现它是一个布尔数组。

您可能应该执行以下操作:

res = np.dot(wMatrix[wIndex] ,X[i]) < np.dot(wMatrix[wIndex+1],X[i])
if res.all():
   ...

这取决于您实际上在< :)中的意思。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM