【发布时间】:2015-08-08 01:49:36
【问题描述】:
给定一个 numpy 矩阵,我希望创建一个由从起始矩阵的列计算的列组成的新矩阵。我可以用矢量运算来做到这一点,但它不是很优雅。例如,假设我想计算简单的增长率。p>
起始矩阵:
m = np.matrix(np.random.random_integers(1,100, size=(5,3)))
matrix([[ 96, 61, 100],
[ 18, 82, 17],
[ 59, 35, 58],
[ 26, 97, 95],
[ 25, 49, 32]])
所需的计算矩阵g:
g0 = np.empty((5, 1))
g0[:] = np.nan
g1 = (m[:, 1] - m[:, 0]) / m[:, 0]
g2 = (m[:, 2] - m[:, 1]) / m[:, 1]
g = np.hstack((g0, g1, g2))
matrix([[ nan, -0.36458333, 0.63934426],
[ nan, 3.55555556, -0.79268293],
[ nan, -0.40677966, 0.65714286],
[ nan, 2.73076923, -0.02061856],
[ nan, 0.96 , -0.34693878]])
我正在处理的真正的 m 矩阵包含许多列。
【问题讨论】: