【发布时间】:2015-09-22 11:33:42
【问题描述】:
我试图让自己熟悉 python 编程,但刚刚开始并努力解决以下问题。也许有人可以给我一个提示,或者我可以在哪里寻找一个好的解决方案。
我想通过一个循环在 6 个不同温度下绘制 132 个波长的普朗克曲线。函数 planckwavel 接收两个参数,波长和温度,我将它们分开在两个循环中。
到目前为止,我设法使用了列表,这很有效,但可能没有以优雅的方式解决:
plancks = []
temp = [280, 300, 320, 340, 360, 380]
temp_len = len(temp)
### via fun planckwavel
for i in range(temp_len):
t_list = [] # list nach jeder j schleife wieder leeren
for j in range(wl_centers_ar.shape[0]):
t = planckwavel(wl_centers_ar[j],temp[i])
t_list.append(t)
plancks.append(t_list)
### PLOT Planck curves
plancks = np.array(plancks).T # convert list to array and transpose
view_7 = plt.figure(figsize=(8.5, 4.5))
plt.plot(wl_centers_ar,plancks)
plt.xticks(rotation='vertical')
但我想使用包含列表的数组,因为我想在之后继续使用更大尺寸的图像。所以我对数组进行了同样的尝试,但不幸的是,这段代码失败了:
plancks_ar = zeros([132,6], dtype=float ) # create array and fill with zeros
temp_ar = array([273, 300, 310, 320, 350, 373])
for i in range(temp_ar.shape[0]):
t_ar = np.zeros(plancks_ar.shape[0])
for j in range(plancks_ar.shape[0]):
t = planck(wl_centers_ar[j]*1e-6,temp[1])/10**6
np.append(t_ar,t)
np.append(plancks_ar, t_ar)
plt.plot(wl_centers_ar,plancks)
如果有人能给我一些建议,我将非常感激。
谢谢, 最好的问候,
彼得
【问题讨论】:
标签: python for-loop multidimensional-array