gpt4 book ai didi

python - 有没有办法从python中的另一个函数参数引用一个函数参数?

转载 作者:行者123 更新时间:2023-12-01 23:46:28 25 4
gpt4 key购买 nike

可能有更好的方法来做到这一点,如果有的话,我会洗耳恭听。但我正在尝试编写一个函数,它采用任意大小的 numpy 数组并使用 Gauss-Jordan Elimination 减少它。我想创建一个增广矩阵,左边是传递的矩阵 A,右边是默认的零列向量或用户指定的列向量。换句话说,对于矩阵 A 和列向量 b,我可以像这样定义我的函数:

def gauss_jordan(A, b=np.zeros((A.shape[0],1)):
# Do stuff here

不幸的是,当我尝试在第二个参数 b 中引用第一个参数 A 时,它告诉我它没有定义。有没有办法从第二个参数引用第一个传递的参数?或者有更好的方法吗?

编辑:按照蒂姆的建议去做:

尝试传递用户定义的向量 b 时出现以下错误。

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我之前尝试过 true/false 路由,但遇到了同样的问题。

编辑 2:谢谢大家!我让它在以下情况下正常工作。 "is"运算符让我忘记了。我在 else 之后添加了 reshape,以便它作为列向量返回。

def gauss_jordan(A, b=None):
rows, columns = A.shape

if b is None:
b = np.zeros((rows,1))
else:
b = b.reshape((rows,1))

# Do other stuff

最佳答案

如果你使用b=None,最安全的做法是做一个b is None测试:

In [47]: def foo(A, b=None):
...: if b is None:
...: b = np.zeros((A.shape[0],1))
...: return b.shape
...:
In [48]: foo(np.arange(3))
Out[48]: (3, 1)
In [49]: foo(np.arange(3),np.zeros(10))
Out[49]: (10,)

关于python - 有没有办法从python中的另一个函数参数引用一个函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64083680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com