gpt4 book ai didi

python - 将大型数组变量(类型 = 对象)导出到 CSV 文件

转载 作者:太空狗 更新时间:2023-10-30 01:30:45 25 4
gpt4 key购买 nike

我在 Python 中使用 APM 中的 Gekko 来解决优化问题。两个主要的决策变量 (DV) 是大数组。问题已成功收敛,但是,我需要将这些表的结果保存在 Excel 工作表中以便进一步工作。

示例变量名称是's'。由于在 Gekko 中创建的数组是 GKVariable/Object 变量类型,我不能简单地使用:

pd.DataFrame(s).to_csv(r'C:\Users\...\s.csv')

因为结果为数组的每个单元格提供了模型中定义的每个变量的标签(即 v1、v2 等)

在内核中使用 print 's' 将显示优化结果中的数组编号,但其格式不能保证每一行都是矩阵的新行,因为许多列。

是否有另一种解决方案来仅复制 DV 's' 的结果值,使其成为普通的 np.array 而不是对象类型变量?对此持开放态度。

最佳答案

您可以使用 s[i].value[0]`` 解决稳态问题(IMODE=1IMODE=3)或 code>s[i].value[:]``` 访问所有其他值的数组 IMODE options .这是一个使用 pandas 和 numpy 将结果写入文件的简单示例。

import numpy as np
from gekko import GEKKO
import pandas as pd

m = GEKKO(remote=False)

# Random 3x3
A = np.random.rand(3,3)
# Random 3x1
b = np.random.rand(3,1)

# Ax = b
y = m.axb(A,b)
m.solve()

yn = [y[i].value[0] for i in range(3)]

print(yn)
pd.DataFrame(yn).to_csv(r'y1.csv')
np.savetxt('y2.csv',yn,delimiter=',',comments='')

关于python - 将大型数组变量(类型 = 对象)导出到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404337/

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