gpt4 book ai didi

Python PULP 数组乘法约束

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

我正在尝试运行一个优化问题,但我似乎无法解决。我是Python菜鸟。

我有一个包含 8760 个数字 (0 - 1) 的数据框。我需要将该数组中的每一行乘以一个因子,然后对该数组求和。该总和应等于 x,例如 50,000。我的代码示例是。

pp.prob = pp.LpProblem("P2g", pp.LpMinimize)
SolarCap = pp.LpVariable("SolarCap", lowBound=0)

pp.prob += SolarCap * 5

for i,j in enumerate(SolverWS['Solar']):
x = j * SolarCap
x = x + x
pp.prob += x == P2gprod

status = pp.prob.solve()

最佳答案

如果我理解正确,您需要将由 n 个条目组成的 pandas 数据框乘以每行相同的因子,然后对所得数据框求和。

您可以使用 Pandas Dataframes 的 mul() 方法(文档 here )

对于元素求和,您所要做的就是在数据框 .values 属性上调用 sum()

这是一个简单的例子

import numpy as np
import pandas as pd
# Create a random dataframe of 10 columns and 876 rows with random float values between 0 and 1
df = pd.DataFrame(np.random.uniform(0,1,size=(876, 10)))
print(df)
print(df.values.sum())
other = 10
# See https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.multiply.html
df1 = df.mul(other)
# Alternatively, for just multiplying the whole dataframe
#df1 = df * 10
print(df1)
print(df1.values.sum())

关于Python PULP 数组乘法约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442449/

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