Python numpy 'too many indices for array'



我想用数据帧调用中的序列填充二维数组。当我执行以下代码时,我收到错误"数组的索引太多"。当我手动将形状设置为系列大小时,它突然切换为大一个位置。(该系列约为356个位置(

size_arr = np.empty(shape=(len(business_date_list)))
y_arr = np.empty(shape=(len(business_date_list)))
for i in range(0, len(business_date_list)):
news = model_data['size'].loc[(model_data['date'] == business_date_list[i])]
size_arr[i,:] = news
newy = model_data['changeday'].loc[(model_data['date'] == business_date_list[i])]
y_arr[i,:] = newy

这将重现您的错误消息。 您应该已显示完整的消息,包括回溯。 它为您和我们提供了有价值的信息!

In [332]: np.empty(3)[0,:]                                                      
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-332-c37e54b88567> in <module>
----> 1 np.empty(3)[0,:]
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

定义一维数组

size_arr = np.empty(shape=(len(business_date_list)))

并尝试将其索引为 2D

size_arr[i,:] = news

索引不是问题,但正确调整大小

shape = ((len(business_date_list)),500)
size_arr = np.empty(shape=(shape))
y_arr = np.empty(shape=(shape))
news = np.empty(shape=(500))
#newy = np.empty(shape=(500,))
for b in range(0, len(business_date_list)):
news = model_data['size'].loc[(model_data['date'] == business_date_list[b])]
c = 500-len(news)
news = np.pad(news, (0,c), 'empty')
size_arr[b,:] = news

newy = model_data['changeday'].loc[(model_data['date'] == business_date_list[b])]
d = 500-len(newy)    
newy = np.pad(newy, (0,d), 'empty')
y_arr[b,:] = newy

最新更新