为了账号安全,请及时绑定邮箱和手机立即绑定

Python numpy '数组索引太多'

Python numpy '数组索引太多'

慕慕森 2023-02-07 16:03:21
我想用数据框调用中的系列填充二维数组。当我执行以下代码时,出现错误“数组索引过多”。当我手动将形状设置为系列大小时,它突然切换到一个更大的位置。(该系列大约有 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
查看完整描述

2 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

这会重现您的错误消息。您应该显示完整的消息,包括回溯。它包含对您和我们都很有价值的信息!


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


查看完整回答
反对 回复 2023-02-07
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

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


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


查看完整回答
反对 回复 2023-02-07
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信