import numpy as np
def cal_cov_matrix(X,Y):
X_centered = X - X.mean(axis = 0)
Y_centered = Y - Y.mean(axis = 0)
return (X_centered.T @ Y_centered) / np.shape(X_centered)[0]
def get_sd(X):
return np.sqrt(np.mean((X-X.mean(axis = 0))**2,axis = 0))
def calculate_correlation_matrix(X, Y=None):
if Y is None:
Y = X
# 将标准差转换为列向量
std_X = get_sd(X).reshape(-1, 1) # 形状 (p, 1)
std_Y = get_sd(Y).reshape(-1, 1) # 形状 (q, 1)
return cal_cov_matrix(X,Y)/(std_X @ std_Y.T)
if __name__ == "__main__":
X = np.array(eval(input()))
print(calculate_correlation_matrix(X))