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

时间:2019-04-19 08:07:40

标签: python arrays numpy

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

例如,假设我要为y = ax的{​​{1}}的不同值评估函数y = x/ay = ax^2y = x^2/aa 1}}。我创建了一个Python函数来评估这四个不同的函数,我们将它们称为x = [0, 10]y1y2y3。我为此做一个for循环,每个变量将是一个y4,每一列都是一个特定值numpy array,每一行都是一个特定值a。事实是,我需要在循环之前初始化变量,而我找不到一种简单,漂亮且pythonic的方式来实现它。

x

我只是想找到一种更好的方法来初始化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]) y1y2y3。当然,我欢迎任何其他建议,因为我来自Matlab,所以这可能不是用Python做到这一点的最佳方法。

1 个答案:

答案 0 :(得分:0)

使用理解力并解压:

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