Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python系列的层次索引中,x[1,2]和x[1][2]之间有什么区别?_Python_Pandas_Indexing_Hierarchy - Fatal编程技术网

在python系列的层次索引中,x[1,2]和x[1][2]之间有什么区别?

在python系列的层次索引中,x[1,2]和x[1][2]之间有什么区别?,python,pandas,indexing,hierarchy,Python,Pandas,Indexing,Hierarchy,我有一个系列 x=pd.Series(np.random.random(16),index=[[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4],['a','b','c','d','a','b','c','d','a','b','c','d','a','b','c','d']]) 看起来是这样的: 1 a -0.068167 b -1.036551 c -0.246619 d 1.318381 2 a -0.119061 b

我有一个系列

x=pd.Series(np.random.random(16),index=[[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4],['a','b','c','d','a','b','c','d','a','b','c','d','a','b','c','d']]) 
看起来是这样的:

1  a   -0.068167
   b   -1.036551
   c   -0.246619
   d    1.318381
2  a   -0.119061
   b    0.249653
   c    0.819153
   d    1.334510
3  a    0.029305
   b   -0.879798
   c    1.081574
   d   -1.590322
4  a    0.620149
   b   -2.197523
   c    0.927573
   d   -0.274370
dtype: float64

x[1,'a']和x[1]['a']之间的区别是什么。它给了我同样的答案。我不明白这种内在的差异意味着什么?什么时候我应该使用上述两个索引?

这个解释来自,但是我相信类似的事情正在熊猫身上发生(在熊猫体内使用numpy,使用“索引器”提供(可能的)命名索引和基础的基于整数的索引之间的映射)

因此,请注意x[0,2]=x[0][2],尽管第二种情况效率较低,因为在第一个索引之后创建了一个新的临时数组,该索引随后被2索引

以下是你们系列节目的时间安排;第一种方法大约快30倍:

In [79]: %timeit x[1, 'a']
100000 loops, best of 3: 8.46 µs per loop

In [80]: %timeit x[1]['a']
1000 loops, best of 3: 274 µs per loop

x[1,'a']
的情况下,熊猫将
1,'a'
作为元组
(1,'a')
,并返回与
(1,'a')
索引标签相对应的序列值


x[1]['a']
的情况下,pandas发现您在
[]
中传递的不是一个元组,它可以在元组中引用它的索引,因此最后发现它可能是对第一级元素的引用
x[1]
然后返回
x
的横截面,在该横截面上我们尝试使用
['a']

什么库提供此
系列
对象?Pandas库这与numpy无关,是Pandas特有的,因为这是一个多索引;请更新答案,以免misinform@jeff我不会说这和numpy无关?!对于NumPy阵列,
x[1]
将是一个视图,性能差异将大大降低。我认为,要正确回答这个问题,需要对索引的作用有更具体的了解。