TypeError: ufunc ‘subtract‘ did not contain a loop with signature matching types dtype(‘<U32‘) dtype
最新推荐文章于 2023-03-09 15:56:18 发布
neo .zhou
最新推荐文章于 2023-03-09 15:56:18 发布
阅读量1k
for line in fr.readlines():
lineArr = line.strip().split()
dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
labelMat.append(lineArr[2])
return dataMat, labelMat
def sigmoid(inX):
return 1.0 / (1 + np.exp(-inX)) # 使用math.exp()会报错,因为inx是numpy类型的
def gradAscent(dataMatIn, classLabels):
dataMatrix = np.mat(dataMatIn)
labelMat = np.mat(classLabels).transpose() # transpose在不指定参数是默认是矩阵转置
# labelMat = np.mat(classLabels).T
m, n = np.shape(dataMatrix)
alpha = 0.001
maxCycles = 500
weights = np.ones((n, 1))
for k in range(maxCycles):
h = sigmoid(dataMatrix * weights)
# print(type(h))
# print(labelMat)
# print(h)
error = (labelMat - h)
weights = weights + alpha * dataMatrix.transpose() * error
return weights
dataArr, labelMat = loadDataSet()
# print(dataArr)
# print(labelMat)
print(gradAscent(dataArr, labelMat))
运行报错:
C:\Users\ktcuser\AppData\Local\Programs\Python\Python36-32\python.exe F:/Logistic/logistic.py
Traceback (most recent call last):
File "F:/Logistic/logistic.py", line 41, in <module>
print(gradAscent(dataArr, labelMat))
File "F:/Logistic/logistic.py", line 33, in gradAscent
error = (labelMat - h)
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U32') dtype('<U32') dtype('<U32')
Process finished with exit code 1
原因:
labelMat.append(int(lineArr[2])) #此处要转换一下为int 否则error = (labelMat - h) 报错
def loadDataSet():
dataMat = []
labelMat = []
fr = open("testSet.txt")
for line in fr.readlines():
lineArr = line.strip().split()
dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
labelMat.append(int(lineArr[2])) #此处要转换一下为int 否则error = (labelMat - h) 报错
# labelMat.append(lineArr[2])
return dataMat, labelMat
TypeError: ufunc ‘subtract‘ did not contain a loop with signature matching types dtype(‘<U32‘) dtype
Traceback (most recent call last):<U9 File "F:/Logistic/logistic.py", line 44, in <module> print(gradAscent(dataArr, labelMat)) File "F:/Logistic/logistic.py", line 36, in gradAscent error = labelMat - hTypeError: ufunc 'subtract' di
最近利用Python读取txt文件时遇到了一个小问题,就是在计算两个np.narray()类型的数组时,出现了以下错误:
TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U3') dtype('<U3') dtype('<U3')
作为一个Python新手,遇到这个问题后花费了挺多时间,在网上找了许多大神们写的例子,最后终于解决了。
总结如下:
(1)出现此问题的原因是:目的是想计算两个数组间的差值,但数组中的元素不是数据类型(float
python报错ufunc 'subtract' did not contain a loop with signature matching types dtype('<U32') dtype('<U32') dtype('<U32')
前面有个warning:FutureWarning: Beginning in version 0.22, arrays of bytes/strings will be converted to decimal numbers if dtype='.
最近在测试分销的项目,每次手动计算分销员的佣金,感觉特别麻烦,所以想着用 python 来实现自动计算佣金,但是在计算过程中遇到一个问题,如下:
如图,在佣金矩阵计算相加的时候, numpy 抛了一个异常,这个异常在网上也没有找到相关资料。
于是我打断点看了一下,发现在计算的时候, list 中的数据,返回的是 str 类型,导致矩阵相加的时候,计算失败了。
然后我又去看了一下自己写的佣金计算规则的代码,需求中有个如果佣金金额大于两位小数的时候,会将数据四舍五入保留两位小数,但是保留两位小数
【Python】ufunc 'subtract' did not contain a loop with signature matching types dtype
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
TypeError: ‘NoneType’ object is not iterable 这个错误提示一般发生在将None赋给多个值时。
def myprocess():
a == b
if a != b:
return True, value;
flag, val = myprocess()
在判断语句中,当if条件不满足,并且没有else语句时,函数默认返回None。
在没有return语句时,Python也默认会返回None
调用时,将Non