python - Python 中多维矩阵(数组)的乘法

标签 python numpy linear-algebra multidimensional-array

首先,我知道矩阵和数组是 NumPy 中两种不同的数据类型。但我把这两个问题都放在标题中,使其成为一个一般性问题。如果您正在编辑此问题,请随时删除一个问题。好的,这是我的问题,

这是对原始问题的编辑。考虑具有二维状态向量 x_t=(y_t,z_t) 的马尔可夫链,其中 y_t 和 z_t 都是标量。表示/存储/操作该马尔可夫链转移矩阵的最佳方式是什么?

现在,我解释的是我的问题的简化版本。我的马尔可夫链状态向量是一个 5*1 向量。 希望这能澄清

最佳答案

假设您正在尝试使用马尔可夫链来模拟英语句子语法。您的转换矩阵将为您提供从一种词性转到另一种词性的概率。现在假设我们使用三阶马尔可夫模型。这将给出从状态 12323X 的概率,其中 X 是有效状态。

马尔可夫转移矩阵将为 N<​​sup>3 x N,无论状态本身的维数如何,它仍然是一个二维矩阵。如果您根据经验证据生成概率分布,那么在这种情况下,将会出现概率为 0 的状态。

如果您担心稀疏性,也许数组不是最好的选择。也许您应该使用字典的字典,而不是使用数组的数组。或者,如果您有许多转换矩阵,则可以是字典的字典数组。

编辑(基于评论): 你是对的,这更复杂。尽管如此,对于任何状态 (i,j),都存在进入下一个状态 (m,n) 的概率分布。因此,我们有了“外部”字典,其键是所有可能的状态。每个键(状态)都指向一个字典形式的值,该字典保存该状态的概率分布。

关于python - Python 中多维矩阵(数组)的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416448/

相关文章:

c++ - 计算 3x3 对称矩阵谱分解的快速方法

python - 传递给函数的对象是否作为参数,得到重复

python - 用于运行统计测试的数据库

python - 带有空间数据的 numpy 数组;快速获得角速度?

python - 跳过 NaN 值以获得距离

python - 在 numpy 中矢量化后的性能损失

python - 在 PyTorch 中计算张量/外积空间中的线性层非常慢

python - 如何在 matplotlib 中强制使用正方形网格

python - 修补 datetime.timedelta.total_seconds

python - 当一种数据类型是对象时,numpy 掩码数组的行为有所不同