非正方形阵列的非对角线元素

时间:2020-03-12 10:42:34

标签: python python-3.x pandas numpy

我有以下日期范围

df=pd.DataFrame.from_dict({'month':['January','February','March','April','May','June','July','August','September','October','November','December'], 'Tonnes':[1,2,3,4,5,6,7,8,9,10,11,12]})

只需要非对角线元素的对角线相关矩阵。 尝试过往的帖子为指导,但所有人都关注nxn数组

预期输出:

columns = ['January','February','March','April','May','June','July','August','September','October','November','December']
index= ['January','February','March','April','May','June','July','August','September','October','November','December']
data=np.array([[ 'nan', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'nan', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'X', 'X'],
       [ 'X', 'X', 'nan', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'nan', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'nan', 'X', 'X', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'nan', 'X', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'nan', 'X', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'nan', 'X', 'X', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'nan', 'X',
        'X', 'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'nan', 'X',
        'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'nan', 'X'],
       [ 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X',
        'X', 'nan']])
matrix=pd.DataFrame(data,index=index,columns=columns)

1 个答案:

答案 0 :(得分:2)

您可以选择带有布尔蒙版的非对角元素并重新塑形:

data[~np.eye(len(data), dtype=bool)].reshape(len(data)-1, -1)