如何基于时间索引访问由numpy向量构造的数组元素
解决方法
你需要调整数组的轴顺序,把时间维度从最后一位移动到第一位即可,实现代码如下:
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = np.array([7, 8, 9]) d = np.array([10, 11, 12]) # 按原有逻辑构造初始数组 mat = np.array([[a, b], [c, d]]) # 调整轴顺序:将最后一维(时间维度)移动到第一维 mat = np.moveaxis(mat, -1, 0)
调整后调用mat[0]即可得到预期输出:
[[ 1 4] [ 7 10]]
原理解释
你初始构造的mat形状为(2, 2, 3),三个维度的含义依次是「矩阵行、矩阵列、时间索引」,使用np.moveaxis调整后数组形状变为(3, 2, 2),第一维对应时间索引,直接按下标访问即可拿到对应时间点的2×2矩阵。
你也可以使用transpose方法实现相同效果,写法为:
mat = mat.transpose(2, 0, 1)
内容的提问来源于stack exchange,提问作者Flix17
相关产品推荐
相关产品推荐

