我目前在Numpy数组方面遇到一个问题。如果这个问题在其他地方已经被问过了,我很抱歉,但我觉得我已经找遍了所有的地方。
我最初的问题是,我试图创建一个数组,并将不同大小的多个站点数据集填入其中。由于我不能用不同大小的数据集填充同一个数组,我决定我需要为每个站点的数据集创建一个新的数组,在我用来迭代每个站点数据集的for循环中定义数组。这样做的问题是,在循环过程中,每个数据集将覆盖前一个数据集,只返回for循环的最终实例。
然后,我试着用 "+"和 "join "操作为每个数组连接一个新的标题,但事实证明,在定义数组时这是非法的。这是程序的实例,每个数据数组都会覆盖前一个数组。注意不是所有的代码都包括在内,这是一个定义的一部分。
for k in range(len(stat_id)):
## NOTE - more code precedes this final portion of the for loop, but was
## not included as it is unrelated to the issue at hand.
# Bring all the data into one big array.
metar_dat = np.zeros((len(stat_id),len(temp),7), dtype='object')
for i in range(len(temp)):
metar_dat[k,i] = np.dstack((stat_id[k], yr[i], month[i], day[i], time[i], temp[i], dwp[i]))
#print np.shape(metar_dat[k])
#print metar_dat[k]
#print np.shape(metar_dat) # Confirm success with shape read.
return metar_dat
在运行和打印这个定义的数组时,我得到了这样的结果(两个空数组和一个最终的填充数组)。
[[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
[[\TZR 2015 7 ..., 2342 58 48]
[\TZR 2015 7 ..., 2300 59 47]
[\TZR 2015 7 ..., 2200 60 48]
[\TZR 2015 7 ..., 0042 56 56]
[\TZR 2015 7 ..., 0022 56 56]
[\TZR 2015 7 ..., 0000 56 56]]]
My question is this:
我怎样才能为每一组台站数据创建一个数组,使其不覆盖任何以前的数据?
如何创建一个包含不同行数的数据集的单一数组?
我仍然是Python的新手(也是在这里发帖的新手),如果有任何想法,我将非常感激。