AttributeError: 'int' object has no attribute 'sqrt' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "F:\week1_220213459\HWdigits\class.py", line 51, in <module> predict_label = myKNN(train_data_set, train_labels, test_data_set[i], k=3) File "F:\week1_220213459\HWdigits\class.py", line 32, in myKNN distance = euclidean_distance(train_data_set[i], test_data) File "F:\week1_220213459\HWdigits\class.py", line 26, in euclidean_distance return np.sqrt(np.sum(np.square(x1 - x2))) TypeError: loop of ufunc does not support argument 0 of type int which has no callable sqrt method
时间: 2023-11-27 13:54:13 浏览: 121
这个错误的原因是你在使用 np.sqrt() 计算平方根时传入了一个整数,而整数类型没有 sqrt() 方法。你需要确保传入的参数是可以进行平方根计算的类型,例如浮点数。你可以将传入的整数转换为浮点数来解决此问题,如下所示:
```python
return np.sqrt(np.sum(np.square(x1 - x2)).astype(float))
```
这样可以将结果转换为浮点数类型,避免了整数类型没有 sqrt() 方法的问题。
相关问题
AttributeError: 'int' object has no attribute 'sqrt' The above exception was the direct cause of the following exception: Traceback (most recent call last):
这个错误通常意味着你尝试对一个整数对象使用sqrt函数,但是sqrt函数只能用于浮点数。你需要将整数对象转换为浮点数对象,例如:
```python
import math
x = 25
y = math.sqrt(float(x))
print(y)
```
这将输出 `5.0`,其中我们使用float函数将x转换为浮点数对象。
Python Exception <AttributeError>: 'property' object has no attribute 'cell' Traceback (most recent call last): File "<string>", line 20, in input AttributeError: 'property' object has no attribute 'cell'
这是 Python 的一个异常,错误类型为 AttributeError,错误消息为 "'property' object has no attribute 'cell'",堆栈跟踪信息如下:
Traceback (most recent call last):
File "<string>", line 20, in input
AttributeError: 'property' object has no attribute 'cell'
这个错误的原因可能是你在代码中使用了 property 对象的 cell 属性,但是该属性不存在。你需要检查代码,确认是否存在这个属性,并且该属性是否被正确地使用。
阅读全文