【发布时间】:2021-03-11 15:17:58
【问题描述】:
所以我是 python 的相对新手(使用 Python 3 和 Spyder IDE 3.8)。 我有以下主要计算文件,其中几个函数聚集在一起并循环通过。现在我正在尝试使用等级函数评估 spray_pressure、spray_angle 和particle_size 的单个值是否在给定的边界内。如果不是 0,则进入新数组,如果是,则实际值存储在新数组中。 所以我想将所有输出存储在 4 个新的数组 spray_pressure、spray_angle、particle_size 和 massflow 中。但我现在不知道如何初始化它们并正确存储值。 如您所见,该脚本的输出应该是 4 个数组 spray_pressure、spray_angle、particle_size 和 massflow,每个数组的大小为 [105, 35],以便可以基于这些数组进行进一步的绘图和计算。
我试过np.array(len(no_düsenkombination ), len(no_hours_Process) 但这不起作用,因为我需要一个 [105x35] 数组,而 np.array 似乎限制为 32 个条目。如果有人知道一个好的解决方案,我将不胜感激。我一整天都在想办法。
from calc_particlesize import calc_particlesize
from calc_sprayangle import calc_sprayangle
from calc_spraypressure import calc_spraypressure
from evaluation import evaluation
def calc_processfactor(df_düsenkombinationen, mk, process_duration, df_rezeptur, recipe_nr):
number_of_nozzles = 6
k = 0 #increment mass flow kondensat
index_Zero = 0
grade = 0
mkmax = mk/(number_of_nozzles*3600)
no_düsenkombination = 105
no_hours_Process = 35
delta_massKondensat = 0
for i in range(no_düsenkombination):
for j in range(no_hours_Process):
# deltamk[index_Zero,j] = mkmax[j,index_Zero]/100
massflow = np.zeros(len(no_düsenkombination), len(no_hours_Process))
delta_massKondensat = mkmax/100
mk = mkmax
while grade != 1 and mk > 0:
mk = mkmax-k*delta_massKondensat #mass kondensat max ist reduziert bis grade #oder mk = 0 ist
spray_pressure = calc_spraypressure(mk,df_düsenkombinationen.iloc[0:5,i:i+1]) #Berechnung des Sprühdruckes
spray_pressure_eff = spray_pressure
spray_angle = calc_sprayangle(spray_pressure, df_rezeptur, recipe_nr, df_düsenkombinationen) #Berechnung des Sprüwinkels
spray_angle_eff = spray_angle
particle_size = calc_particlesize(spray_pressure,spray_angle, mk, recipe_nr, df_rezeptur, df_düsenkombinationen) #Berechnung der Partikelgrösse
particle_size_eff = particle_size
grade = evaluation(spray_pressure,spray_angle,particle_size) #Bewertung der Prozessgrössen
k = k+1
if grade == 0:
spray_pressure[i,j] = 0 #INTIIALISIEREN #Matrix mit Sprühdruck, Zeile: Kombiantionen, Spalte: Stunden
spray_angle[i,j]= 0 #Matrix mit Sprühwinkel, Zeile: Kombiantionen, Spalte: Stunden
particle_size[i,j]= 0 #Matrix mit Partikelgrösse, Zeile: Kombiantionen, Spalte: Stunden
massflow[i,j]= 0 #Matrix mit Konzentratmassenstrom, Zeile: Kombiantionen, Spalte: Stunden
else:
spray_pressure[i,j] = spray_pressure_eff
spray_angle[i,j]= spray_angle_eff
particle_size[i,j] = particle_size_eff
massflow[i,j] = mk*6*3600
grade = 0 #Reset von grade
return(spray_pressure, spray_angle, particle_size, massflow)```
【问题讨论】:
标签: python arrays numpy indexing