假设有以下NumPy数组:
arr = np.array([0, 1, 2, 3, 4]) # can be any array
我想知道生成以下操作的最快方法:
n = arr.shape[0]
result = np.tile(arr, (n, 1)) - arr.reshape((-1, 1))
print(result):
array([[ 0, 1, 2, 3, 4],
[-1, 0, 1, 2, 3],
[-2, -1, 0, 1, 2],
[-3, -2, -1, 0, 1],
[-4, -3, -2, -1, 0]])
(1) 如何高效地创建矩阵"result"(因为n >> 0可能非常大)?
(2) 这个矩阵有特定的名称吗?
scipy.linalg.toeplitz
。 - Warren Weckesser