python - Numpy 列和行向量

标签 python numpy

为什么在 numpy 中可以将 2x2 矩阵乘以 1x2 行向量?

import numpy as np

I = np.array([[1.0, 0.0], [0.0, 1.0]])
x = np.array([2.0,3.0])

In: I * x
Out: array([[ 2.,  0.], [ 0.,  3.]])

转置 x 也没有任何意义。一个行向量仍然是一个行向量?

In: x.T
Out: array([ 2.,  3.])

从数学的角度来看,表示非常困惑。

最佳答案

Numpy 数组不是向量。或重要的矩阵。它们是数组。

它们可以用来表示向量、矩阵、张量或任何你想要的东西。然而,numpy 的天才在于表示数组,并让用户决定它们的含义。

在数组上定义的一个操作是(逐项)乘法。此外,广播允许您通过在缺失的维度中“扩展”它来对不同形状的数组进行操作,因此您的乘法实际上是(逐项)乘法:

[[1.0, 0.0], [0.0, 1.0]] * [[2.0, 2.0], [3.0, 3.0]]

如果你想使用点积,在矩阵意义上,你应该使用 .dot 方法,它就是这样做的:将它的输入解释为向量/矩阵/张量,然后做一个点积。

关于python - Numpy 列和行向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179413/

相关文章:

python - np.where() 如果条件失败则什么都不做

python - 与 Python numpy 矩阵不一致的结果

python - scikit-learn Python 中的 CountVectorizer() 在提供大数据集时会出现内存错误。使用较小数据集的相同代码工作正常,我错过了什么?

Python与R并行将数组转换为数据表

python - 如何将具有相同索引的多行组合在一起,并且每一行在pandas中只有一个真实值?

python - 计算二维数组中出现的次数

python - 在 Numpy 中切片后确定结果数组的形状

python - 有没有更好的方法来重写下面的 python 代码,同时考虑到大型列表的时间复杂度?

python - python中小写字母排序

python - scipy.fft 挂起某些声音文件