TypeError: reduction operation 'argmin' not allowed for this dtype
时间: 2023-12-25 15:03:20 浏览: 113
这个错误通常发生在使用 numpy 库时,尝试在不支持 argmin 操作的 dtype 上执行 argmin 操作时引发。可能的原因是您正在尝试在无符号整数类型上执行 argmin 操作,而此操作仅适用于有符号整数和浮点数类型。
解决此问题的方法之一是将数据类型转换为支持 argmin 操作的类型,例如将无符号整数类型转换为有符号整数类型或浮点数类型。您可以使用 astype() 方法执行此操作,例如:
```python
import numpy as np
arr = np.array([1, 2, 3], dtype=np.uint8)
min_idx = np.argmin(arr.astype(np.int16))
```
在上面的示例中,我们将 arr 数组的数据类型从 uint8 转换为 int16,以支持 argmin 操作。
相关问题
但是 报了这个 TypeError: reduction operation 'argmin' not allowed for this dtype 这个错
这个错误通常是由于数据类型不匹配导致的。在这段代码中,可能是因为 `bic_matrix` 中的某些元素的数据类型不是数字,而是 None 或其他数据类型,从而导致了错误的出现。
你可以尝试在生成 `bic_matrix` 的时候,将其中的 None 替换成一个很大的数字,例如:
```python
if tmp[-1] is None:
tmp[-1] = float('inf')
bic_matrix.append(tmp)
```
这样可以避免 None 导致的数据类型不匹配问题。
TypeError: reduction operation 'argmax' not allowed for this dtype
这个错误通常是由于数据类型不支持 `argmax()` 函数所导致的。`argmax()` 函数用于返回最大值所在的索引位置,但是只能用于数值类型数据。如果 `argmax()` 函数用于非数值类型数据,就会出现该错误。
如果你的数据类型是非数值类型,可以考虑使用 `idxmax()` 函数来获取最大值所在的索引位置。`idxmax()` 函数用于返回最大值所在的行索引标签,可以用于任何数据类型。
如果你的数据类型是数值类型,但是也出现了该错误,可以尝试将数据类型转换为数值类型,例如:
```python
df['column_name'] = pd.to_numeric(df['column_name'])
```
这样可以将 `column_name` 列的数据类型转换为数值类型。
阅读全文