将整数转为NumPy数组后访问索引报错,原因何在?
问题原因及解决方法
核心原因
当你执行np.array(150)时,创建的是0维标量数组,这类数组没有维度(轴),因此无法通过[0]这种索引方式访问元素——索引操作需要针对数组的某个轴,而0维数组不存在任何轴,所以会触发IndexError。
如何得到你预期的结果
要创建能通过[0]访问的数组,你需要传入包含单个元素的可迭代对象(比如列表)来初始化:
a = 150 b = np.array([a]) print(b[0]) # 输出150
此时创建的是1维数组,拥有一个轴,索引0对应这个轴上的第一个(也是唯一一个)元素。
额外技巧:如果已经得到0维数组
如果已经生成了0维数组,也可以通过以下方式获取内部的值:
b = np.array(150) print(b.item()) # 输出150 print(b[()]) # 输出150
内容的提问来源于stack exchange,提问作者f. c.
相关产品推荐
相关产品推荐

