gpt4 book ai didi

python - 如何在 for 循环之前用零初始化不同的变量(同时)?

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:13 24 4
gpt4 key购买 nike

我正在编写一段代码,其中我必须在 for 循环内使用不同的参数多次调用同一函数。这个函数返回四个变量,我想将它们保存在 numpy array 中(矩阵)以便以后轻松绘制。

例如,假设我想评估函数 y = ax , y = x/a , y = ax^2y = x^2/a对于 a 的不同值在x = [0, 10] 。我创建了一个 Python 函数来评估四个不同的函数,我们将它们称为 y1 , y2 , y3y4 。我为此创建了一个 for 循环,每个变量都是 numpy array ,每列都是特定值 a ,每行都是特定值 x 。问题是我需要在循环之前初始化变量,但我找不到一种方法以简单、漂亮和 Python 的方式来完成它。

import numpy as np

def func(x, a):
y1 = a*x
y2 = x/a
y3 = a*x**2
y4 = x**2/a
return y1, y2, y3, y4

x = np.arange(0, 11)
a = np.array([1, 2, 3, 4])

y1 = np.zeros((len(x), len(a)))
y2 = np.zeros((len(x), len(a)))
y3 = np.zeros((len(x), len(a)))
y4 = np.zeros((len(x), len(a)))
for i in range(len(a)):
y1[:, i], y2[:, i], y3[:, i], y4[:, i] = func(x, a[i])

我只是想找到更好的初始化方式y1 , y2 , y3 ,和y4 。当然,我欢迎任何其他建议,因为我来自 Matlab,这可能不是在 Python 中执行此操作的最佳方法。

最佳答案

使用理解并解压:

y1, y2, y3, y4 = (np.zeros((len(x), len(a))) for _ in range(4))

关于python - 如何在 for 循环之前用零初始化不同的变量(同时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758633/

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