我试图使用numpy将2个向量相乘并进行比较,但有些情况下它会给我错误..数据来自CSV文件 我找到了
The truth value of an array with more than one element is ambigous when trying to index an array
这种类型的更多情况,但它与我的情况真的不同.. 我的代码:
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()`
我只想尝试将矢量与相同大小的矢量相乘,我不明白为什么它不会让我... HELP ..?
答案 0 :(得分:3)
如果按照@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():
...
这取决于您在<
中的实际含义:)