【发布时间】:2017-11-23 22:52:07
【问题描述】:
我有一个形状数组 (3,2):
import numpy as np
arr = np.array([[0.,0.],[0.25,-0.125],[0.5,-0.125]])
我试图构建一个维度为 (6,2) 的矩阵 (matrix),其结果是 arr 的元素 i,i 的外积和arr.T。目前我正在使用 for 循环,例如:
size = np.shape(arr)
matrix = np.zeros((size[0]*size[1],size[1]))
for i in range(np.shape(arr)[0]):
prod = np.outer(arr[i],arr[i].T)
matrix[size[1]*i:size[1]+size[1]*i,:] = prod
结果:
matrix =array([[ 0. , 0. ],
[ 0. , 0. ],
[ 0.0625 , -0.03125 ],
[-0.03125 , 0.015625],
[ 0.25 , -0.0625 ],
[-0.0625 , 0.015625]])
有什么方法可以在不使用 for 循环(例如广播)的情况下构建这个 矩阵?
【问题讨论】: