【发布时间】:2019-12-26 14:49:26
【问题描述】:
如果我不能准确地综合我的标题的问题,请原谅,但我想通过解释它,事情会变得更清楚。
我的问题是我必须使用一组数组的每个组合来执行计算,然后将每个循环的相应结果以及用于计算的参数存储在一个数组中。随后,我会将 NumPy 数组和相应的计算结果存储在 pandas 数据帧中
我试图尽可能避免 for 循环,我不确定是否有其他方法可以利用我仍然不知道的 pandas 或 python 方法来实现我的目标。我试图解决的问题自然更复杂,并且会涉及更多的数组以及更复杂的数据。所以,总而言之,我的问题是是否有其他聪明的方法可以避免我一直在做的事情。
我一直在编写的代码 - 以非常类似于 matlab 的方式编写 - 具有与以下类似的逻辑(这只是一个说明性的简单示例):
max_x = 5
min_x = 1
x_1 = np.linspace(min_x, max_x, 5)
x_2 = np.linspace(min_x, max_x, 5)
x_3 = np.linspace(min_x, max_x, 5)
x_4 = np.linspace(min_x, max_x, 5)
x_result = np.array([])
x1 = np.array([])
x2 = np.array([])
x3 = np.array([])
x4 = np.array([])
for i in range(0,len(x_1)):
for j in range(0,len(x_2)):
for k in range(0,len(x_3)):
for l in range(0, len(x_4)):
x_set = [x_1[i],x_2[j],x_3[k], x_4[l]]
x_calc = calculation_1(arg = x_set)
x1 = np.append(x1, x_1[i])
x2 = np.append(x2, x_2[j])
x3 = np.append(x3, x_3[k])
x4 = np.append(x4, x_4[l])
x_result = np.append(x_result, x_calc)
df_x = pd.DataFrame(np.array([x1, x2, x3, x4, x_result])).T
【问题讨论】:
-
签出
np.meshgriddocs.scipy.org/doc/numpy/reference/generated/…
标签: python pandas dataframe for-loop nested-loops