Я хочу построить корреляционную матрицу всех авторов серии статей.
Сначала я построю корреляционную матрицу всех авторов для всех авторов, инициализированных нулями, и представлю их с помощью блока данных pandas.
Затем я получу список авторов первой статьи и построю меньший информационный кадр, инициализированный равным единице.
Мне, наконец, нужно будет сложить те, которые находятся под диагональю последнего меньшего информационного кадра, в большуюone.
После того, как я повторю это для всех статей, конечным результатом будет то, сколько раз каждый автор опубликовал вместе с каждым соавтором.
Я хотел бы избежать явных итераций и использовать панд иМаксимально возможное количество операций:
Вот рабочий код, приводящий к моему вопросу:
import pandas as pd
import numpy as np
all_authors = ["a","b","c","d","e","f","g"]
#create a numpy array initialized to all zeros with a side length of all_authors
authors_num = len(all_authors)
corr_matrix = np.zeros((authors_num,authors_num),dtype=np.int8)
# create a pandas dataframe using the corr_matrix and add the authors names as indexes and column names
corr_df = pd.DataFrame(data=corr_matrix, # data
index=all_authors, # row names
columns=all_authors) # column names
article_1_authors = ["a","b","d"]
#create a numpy array initialized to all ones with a side length of the article authors
authors_num = len(article_1_authors)
corr_matrix = np.ones((authors_num,authors_num),dtype=np.int8)
# create a pandas dataframe using the corr_matrix and add the authors names as indexes and column names
auth_df = pd.DataFrame(data=corr_matrix, # data
index=article_1_authors, # row names
columns=article_1_authors) # column names
Так что из приведенного выше кадра данных мне нужно будет использовать только значения ab ad и bd исуммируйте их в corr_df
Как я могу использовать операторы pandas / numpy, избегая циклов и других итераций, если possible?Заранее спасибо