假设我有一个Python Numpy数组a.
a = numpy.array([1,2,3,4,5,6,7,8,9,10,11])
Run Code Online (Sandbox Code Playgroud)
我想从这个长度为5的数组创建一个子序列矩阵,步长为3.结果矩阵因此如下所示:
numpy.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])
Run Code Online (Sandbox Code Playgroud)
实现这一点的一种可能方式是使用for循环.
result_matrix = np.zeros((3, 5))
for i in range(0, len(a), 3):
result_matrix[i] = a[i:i+5]
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来实现这个Numpy?
我有一个矩阵 M1 ,其中每一行都是一个与时间相关的信号。
我还有另一个相同维度的矩阵 M2,其每一行也是一个时间相关信号,用作“模板”,用于识别第一个矩阵中的信号形状。
我想要一个列向量 v,其中 v [i] 是 M1 第 i 行和 M2 第 i 行之间的相关性。
我研究了 numpy 的 corrcoef 函数并尝试了以下代码:
import numpy as np
M1 = np.array ([
[1, 2, 3, 4],
[2, 3, 1, 4]
])
M2 = np.array ([
[10, 20, 30, 40],
[20, 30, 10, 40]
])
print (np.corrcoef (M1, M2))
Run Code Online (Sandbox Code Playgroud)
打印:
[[ 1. 0.4 1. 0.4]
[ 0.4 1. 0.4 1. ]
[ 1. 0.4 1. 0.4]
[ 0.4 1. 0.4 1. ]] …Run Code Online (Sandbox Code Playgroud)