numpy 利用矢量化计算将三维数组的维数扩展为对角矩阵

qyyhg6bp  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(72)

我有形状为(N,M,D)的np个数组A。
我想创建形状为(N,M,D,D)的np.ndarray B,使得对于沿着轴0和1的每对固定索引n,m
B[n,m] =眼长(A[n,m])
我知道如何使用循环来解决这个问题,但是我想写代码来以矢量化的方式执行这个任务,使用numpy怎么做呢?

wz3gfoph

wz3gfoph1#

import numpy as np

A = ... # Your array here

n, m, d = A.shape

indices = np.arange(d)
B = np.zeros((n, m, d, d))
B[:, :, indices, indices] = A

相关问题