使用NumPy数组映射系列 - 维度问题?

时间:2014-07-25 14:36:37

标签: numpy pandas

当我使用二维数组地图时,一切正常。当我开始使用1d arrray时,会发生此错误; IndexError: unsupported iterator index。这是我正在谈论的错误:

In [426]: y = Series( [0,1,0,1] )
In [427]: arr1 = np.array( [10,20] )
In [428]: arr2 = np.array( [[10,20],[30,40]] )
In [429]: arr2[ y, y ]
Out[429]: array([10, 40, 10, 40])
In [430]: arr1[ y ]

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-430-25b98edce1f3> in <module>()
----> 1 arr1[ y ]

IndexError: unsupported iterator index

我正在使用最新的Anaconda发行版和NumPy 1.8.1。也许这与NumPy bug discussed here有关? 有人能告诉我导致这个错误的原因是什么吗?

1 个答案:

答案 0 :(得分:2)

您需要将Series转换为数组,反之亦然。对于1维对象,索引器必须为1维。

In [11]: arr1[y.values]
Out[11]: array([10, 20, 10, 20])

In [12]: Series(arr1)[y]
Out[12]: 
0    10
1    20
0    10
1    20
dtype: int64