python - 如何在 Python 中创建矩阵或将二维数组转换为矩阵?

标签 python arrays numpy matrix matrix-multiplication

我希望能够从 Python 中的 2D 数组中提取行或列,以便它保留 2D 形状并可用于矩阵乘法。但是,我在 documentation 中找不到如何才能最好地做到这一点。例如,我可以使用

a = np.zeros(shape=(6,6)) 

创建一个数组,但 a[:,0] 将具有 (6,) 的形状,并且我无法将其乘以形状 (6,1) 的矩阵。我是否需要为每个矩阵乘法将数组的行或列 reshape 为矩阵,或者是否有其他方法来进行矩阵乘法?

最佳答案

您可以直接使用np.matrix:

>>> a = np.zeros(shape=(6,6)) 
>>> ma = np.matrix(a)
>>> ma
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> ma[0,:]
matrix([[ 0.,  0.,  0.,  0.,  0.,  0.]])

或者您可以使用np.newaxis添加尺寸

>>> a[0,:][np.newaxis, :]
array([[ 0.,  0.,  0.,  0.,  0.,  0.]])

关于python - 如何在 Python 中创建矩阵或将二维数组转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686637/

相关文章:

numpy 数组中部分最大值的 pythonic 方式

python - NumPy 中的向量化操作

python - Pandas :分配具有多个条件和日期阈值的列

JavaScript,如何快速复制对象数组,但仅复制该对象中我需要的值

javascript - 通过连接多个数组来创建列表矩阵

arrays - 在 coffeescript 数组中查找重复值的最简单方法

python - float64 到 float32 的转换给出了意想不到的结果

python - 在python中的字典中查找最长路径

python - 如何读取带有负步长的切片

python - Selenium:检索向下滚动时加载的数据