多维矩阵中的非数字索引(列表)

时间:2016-04-24 21:15:23

标签: python numpy pandas matrix scipy

有没有办法用NON数字索引创建2D矩阵?更重要的是,使用那些非数字索引来获取/设置值?

我的意思是拥有像

这样的2D矩阵
   mat=
         one  two  three
     A    1    2      3
     B    4    5      6

然后能够设置/获取

    >>>m13=mat[A,three]
    >>> m13
    >>> 3

任何想法片段都表示赞赏。我在考虑使用“熊猫”,但无法弄明白。

1 个答案:

答案 0 :(得分:3)

您可以使用loc

import pandas as pd

mat = pd.DataFrame({'three': {'A': 3, 'B': 6},
                    'two': {'A': 2, 'B': 5}, 
                    'one': {'A': 1, 'B': 4}}, 
                    columns = ['one','two','three'])

print mat
   one  two  three
A    1    2      3
B    4    5      6

#GET
print mat.loc['A', 'three']
3

#SET
mat.loc['A', 'three'] = 10
print mat
   one  two  three
A    1    2     10
B    4    5      6

编辑:

您也可以从numpy array创建DataFrame

print arr
[[1 2 3]
 [4 5 6]]

mat = pd.DataFrame(arr, index=['A','B'], columns=['one','two','three'])
   one  two  three
A    1    2      3
B    4    5      6