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/

相关文章:

python - Django 守护者 : How to give all users the permissions of the anonymous user

arrays - 按子级值对多维数组进行排序

python - NumPy:将小数转换为分数

python - OpenCV 错误:错误:(-215)scn == 3 ||函数 cv::cvtColor 中的 scn == 4

python - 点击滑溜溜的 "ElementNotVisibleException"按钮selenium webdriver python

python - NoneType' 对象对于 Vectorizer sklearn 不可迭代

python - 试图减少 python leetcode 问题中的运行时间

python - numpy 数组的最快保存和加载选项

python - Pandas :如何根据不同列的值对列元素的组合进行分组以指示共现?

python - 在 while 循环中追加数组