argmin() got an unexpected keyword argument 'keepdims'
时间: 2023-11-20 11:06:22 浏览: 164
根据提供的引用内容,可以得知发生了TypeError错误,错误信息为'argmin() got an unexpected keyword argument 'keepdims''。这个错误通常是由于使用了不支持keepdims参数的函数而导致的。keepdims参数是在numpy 1.8版本中引入的,如果你的numpy版本低于1.8,则不支持该参数。解决这个问题的方法是升级numpy版本或者删除keepdims参数。
以下是两种解决方法:
1.升级numpy版本
```python
pip install --upgrade numpy
```
2.删除keepdims参数
```python
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(np.argmin(a, axis=0)) # 删除keepdims参数后,输出:[2 1 1]
```
相关问题
TypeError: __init__() got an unexpected keyword argument 'defaultColWidthPt'
TypeError: __init__() got an unexpected keyword argument 'defaultColWidthPt'是一个错误提示,意味着在使用__init__()函数时传入了一个未预期的关键字参数'defaultColWidthPt'。这个错误通常发生在使用第三方库或自定义类时,传入了不支持的参数。
以下是两种可能的解决方法:
1. 检查参数名是否正确:首先,确保你正确地拼写了参数名'defaultColWidthPt'。如果你使用的是第三方库或自定义类,请查阅相关文档以确认参数名是否正确。
2. 检查库或类的版本:有时,这个错误可能是由于使用了不兼容的库或类版本引起的。请确保你使用的是与你代码兼容的库或类的最新版本。
范例:
```python
# 示例代码
class MyClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
# 创建实例时传入了未预期的关键字参数'defaultColWidthPt'
my_obj = MyClass(arg1='value1', arg2='value2', defaultColWidthPt=10)
# 上述代码会触发TypeError: __init__() got an unexpected keyword argument 'defaultColWidthPt'
```
__init__() got an unexpected keyword argument 'pipeline'
### 解决 Python 中 `__init__()` 方法遇到意外关键字参数 'pipeline' 的问题
当类初始化方法 `__init__` 遇到未预期的关键字参数时,通常是因为调用者传递了一个该方法并未定义的参数。为了处理这种情况,可以采用以下几种策略:
#### 使用可变长度关键字参数
通过在 `__init__` 定义中加入 `**kwargs` 参数来捕获所有额外的关键字参数,并可以选择忽略它们或进一步处理。
```python
class MyClass:
def __init__(self, expected_arg, **kwargs):
self.expected_arg = expected_arg
# 处理或忽略其他参数
if 'pipeline' in kwargs:
print(f"Pipeline parameter found with value {kwargs['pipeline']}")
```
这种方法允许灵活地接收任意数量的关键字参数而不会引发错误[^1]。
#### 明确指定默认值
如果确实需要支持名为 `pipeline` 的参数,则应在 `__init__` 函数签名中为其提供一个合理的默认值。
```python
class MyClass:
def __init__(self, expected_arg, pipeline=None):
self.expected_arg = expected_arg
self.pipeline = pipeline or "default_pipeline_value"
```
这不仅解决了未知参数的问题,还使得接口更加清晰明了[^2]。
#### 检查并抛出自定义异常
对于严格控制输入的情况,在检测到不期望的参数时立即终止程序运行可能是更好的做法;可以通过自定义异常机制实现这一点。
```python
class UnexpectedArgumentError(Exception):
pass
def validate_kwargs(kwargs, allowed_keys):
extra_args = set(kwargs).difference(set(allowed_keys))
if extra_args:
raise UnexpectedArgumentError(
f"Unexpected arguments passed: {', '.join(extra_args)}"
)
class MyClass:
ALLOWED_INIT_ARGS = ['expected_arg']
def __init__(self, *args, **kwargs):
validate_kwargs(kwargs, self.ALLOWED_INIT_ARGS)
...
```
上述代码片段展示了如何创建一个辅助函数用于验证传入的关键字参数是否合法,从而防止非法参数进入实例化过程[^3]。
阅读全文