我的代码需要帮助。我正在做小代码来产生合成地震加速度。而且由于代码/我的低效率,我很少陷入困境。我有矩阵 aaa ,但事实上它是向量的向量。每行对应于特定的特征值。排在时间的历史。在我的例子中,我有4个特征值= 4行,时间分为7个部分。由于 aaa.shape =(4L,7L)
aaa=array([
[1.90e-17, -1.58e-02, 8.64e-03, 2.35e-02, 8.64e-03, -1.58e-02, -7.07e-18],
[-1.70e-05, -9.20e-03, 6.13e-02, -2.53e-08, -6.13e-02, 9.20e-03, 1.70e-05],
[-1.52e-16, -4.13e-02, -5.48e-02, 1.23e-01, -5.48e-02, -4.13e-02, 7.26e-17],
[-2.05e-07, -1.37e-01, 9.93e-02, -1.22e-12, -9.93e-02, 1.37e-01, 2.05e-07]])
我有工作代码(效率低下),很简单:
for i in xrange(0,len(aaa)):
for j in xrange(0,len(aaa)):
fiMN2[j,i]=np.dot(aaa[i],aaa[j])`
fiMN2
array([[ 4.8234e-03, -4.3786e-09, 1.3096e-02, -7.2303e-15],
[ -4.3786e-09, 3.0817e-02, -1.4847e-08, 5.8952e-02],
[ 1.3096e-02, -1.4847e-08, 9.8940e-02, -9.9190e-13],
[ -7.2303e-15, 5.8952e-02, -9.9190e-13, 2.3102e-01]])
但是我想使用1000s特征值和大约10000次步长,因为for循环使我的代码无用。拜托,你能帮我找一些更优雅的东西吗?我正在尝试实施numpy.outer
,numpy.meshgrid
,但没有成功。我很少舍入 aaa 和 fiMN2 的值,因为它不适合窗口。谢谢,BR,Igor